被打破我有一個使用GetTempFileName
MFC程序。在Windows 7上,它可以正常工作,但是當我將相同的代碼加入Windows 10時,它會產生垃圾。GetTempFileName出現在Windows 10
TCHAR temp_dir[1024];
GetTempPath(1024,temp_dir);
TCHAR temp_file[1024];
GetTempFileName("C:\\","udb",0,temp_file);
std::cout << "Temp DB Path: " << temp_file << std::endl;
的Windows7上:
Temp DB Path: C:\udb2145.tmp
在Windows10:
Temp DB Path: o▒
難道我做錯了什麼在我的代碼?或者我應該使用不同的功能?
我懷疑你的Windows 10的機器上,你在做一個Unicode版本。所有這些TCHAR數組都變成'wchar_t',而'std :: cout'不能處理。請改用'std :: wcout'。 –
'GetTempFileName'需要三個'TCHAR'的字符串,但你只給它一個。另外兩個,你只是假設它需要'char'的字符串。 – chris
你忽略了錯誤檢查和收穫你只是甜點 –