被打破我有一个使用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
你忽略了错误检查和收获你只是甜点 –