#include "stdafx.h"
#include <windows.h>
#include <tlhelp32.h>
#include <tchar.h>
#include <iostream>
#include <UrlMon.h>
#include <cstring>
#pragma comment(lib, "UrlMon.lib")
using namespace std;
int main()
{
char* appdata = getenv("APPDATA"); //Gets %Appdata% path
char* truepath = strcat(appdata, "\\USR\\file.dat"); // file location
cout << truepath ;
HRESULT hr = URLDownloadToFile(NULL, _T("http://localhost:8080/upload.php?name=Huh?" + truepath), _T("d"), 0, NULL);
cin.get();
return 0;
}
Это мой код выше, и я получаю сообщение об ошибке на этой полосе:не в состоянии использовать символ * с URLDownloadToFile
HRESULT hr = URLDownloadToFile(NULL, _T("http://localhost:8080/upload.php?name=Huh?" + truepath), _T("d"), 0, NULL);
Ошибка компиляции это дает мне говорит, что «+ truepath» является там невозможно использовать.
Я пробовал .c_str() и несколько других способов, но не могу заставить его работать. Любая помощь приветствуется.
Вы не можете объединить char * с строковым литералом с помощью оператора +. Используйте std :: string/std :: wstring – user1233963
Кроме того, этот 'strcat' уничтожает блок памяти переменных окружения. –
Строят ли для Ansi или UNICODE? – manuell