отправка в телеграм через ShellExecute curl c++

Отравка файла в телеграм, мне не удобно делать сразу всё в ручную(писать внутри токен и чат айди) Практичней для меня будет подставление из переменных.

    string pathfile = "C:\\Users\\ffz\Desktop\\test.txt";
    string token = "dfghdfhdfhf";
    string chatid = "12312312312";
    ShellExecuteA(NULL, "open", "cmd.exe", L"/c curl -v -F ""chat_id = " + chatid + """ -F document=@"+pathfile+" https://api.telegram.org/bot" + token + "/sendDocument", NULL, SW_SHOW);

Мой код. Не работает из-за того что VS не воспринимает знак "+".


Ответы (1 шт):

Автор решения: KoVadim

Все оно воспринимает. Просто нельзя складывать const char* и std::string и надеятся, что получится const char*. Ну хотя бы так

string pathfile = "C:\\Users\\ffz\Desktop\\test.txt";
string token = "dfghdfhdfhf";
string chatid = "12312312312";
std::string r = std::string("/c curl -v -F ""chat_id = ") + chatid + """ -F document=@"+pathfile+" https://api.telegram.org/bot" + token + "/sendDocument";
ShellExecuteA(NULL, "open", "cmd.exe", r.c_str(), NULL, SW_SHOW);

я просто скопировал там текст, но кол-во кавычек странное. Но подозреваю, что это Вы там что то порезали.

Но если это просто хочется двойную кавычку вставить, то ее нужно просто заескейпить. где то так

"\""
→ Ссылка