Могу ли я остановить декодирование URL-адресов команды Visual Studio в режиме отладки?
Извините, но, боюсь, ответ отрицательный.Эта проблема существует после моего теста, и, насколько я знаю, в VS нет никакой опции, которая могла бы отключить или контролировать это поведение.Для этого я рекомендую, чтобы вы могли Go Help=>Send Feedback=>Report a problem in VS
до сообщить об этой проблеме в команду продукта.
Мне нужно передать аргумент, закодированный в URL, и его не нужносначала интерпретируется Visual Studio.
И так как он хорошо работает в командной строке.Итак, вам нужно получить строку формата UrlEncode во время VS debug process
в вашей разработке.Для этого вы можете попробовать:
1 . Добавить код перед тем, как вам нужен реальный аргумент для UrlEncode argv[1]
(я думаю, что это https://as
).О том, как сделать UrlEncode, см. эту проблему .
2 . Установите аргумент таким образом, установите https% 3a% 2f% 2fas
как argv[1]
вместо https%3a%2f%2fas
в свойствах проекта добавьте код, чтобы определить, содержит ли он пробел, if true
=> напишите код, чтобы удалить пробел в нем и получить новую нужную строку (https%3a%2f%2fas
)
3 . Настройте свой собственный файл аргумента:
1 # В vs щелкните правой кнопкой мыши проект => добавьте файл Text.txt в проект.
2 # Задайте единственный аргумент в этомas Text.txt
.
Тогда содержимое вашего Text.txt является набором ваших пользовательских аргументов.Например:
В строке 1 файла Text.txt https%3a%2f%2fas
, строке 2 test
, строке 3 ...
3 # Затем вы можете использовать код, подобный следующему:
#include "pch.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
ifstream infile(argv[1]); //open the file
string MyArgus[10]; //create my alternative argus
MyArgus[0] = argv[0]; //let the first argu of Myargus=original vs argu[0]
if (infile.is_open() && infile.good()) {
cout << "File is open."<<endl;
string line = "";
int num = 1;
while (getline(infile, line)) {
MyArgus[num] = line;
num++;
}
}
else {
cout << "Failed to open file..";
}
cout << MyArgus[0]<<endl; // projectName.exe always
cout << MyArgus[1]<<endl; // https%3a%2f%2fas
cout << MyArgus[2]<<endl; // test
return 0;
}
Таким образом, вы можете записать аргументы таким образом в файл Text.txt, чтобы установить свои собственные аргументы, чтобы избежать автоматического UrlDecode в VS.
Надеюсь, это поможет:)