Проблема в том, что вы можете легко попасть в неприятности, поскольку JavaScript имеет много неявных преобразований, смысл ...
var x = 0;
var isTrue = x == null;
var isFalse = x === null;
Которая довольно скоро становится проблемой. Лучший пример того, почему неявное преобразование является «злым», можно извлечь из этого кода в MFC / C ++, который на самом деле будет скомпилирован из-за неявного преобразования из CString в HANDLE, который является типом typedef-указателя ...
CString x;
delete x;
Что очевидно во время выполнения very неопределенных вещей ...
Google для неявных преобразований в C ++ и STL чтобы получить некоторые аргументы против него ...
Вам необходимо создать полный URL-адрес в виде строки, прежде чем передать его второму аргументу функции.
Примерно так:
std::string url = "localhost:8080/test.php?username=";
url = url + UserNameBuffer + "&token=" + TokentBuf;
URLDownloadToFile(NULL, url.c_str() , "C:\\test.txt", 0, NULL);
Концепция параметров HTTP не имеет ничего общего с концепцией параметров функции для функции URLDownloadToFile.