我正在尝试通过调用GetModuleFileName()
来使用其VM地址加载图像的名称,这似乎将值正确地返回到TCHAR[]
数组中。我可以使用MessageBox()
正确显示数据,但cout <<
似乎显示一些时髦的十六进制数字。
TCHAR buf[MAX_PATH];
HMODULE hProc = LoadLibrary(TEXT("kernel32.dll"));
GetModuleFileName(hProc, buf, MAX_PATH);
cout << buf; //Produces the odd number
MessageBox(NULL, buf, NULL, MB_OK); //Produces correct filepath
FreeLibrary(hProc);
我应该为cout
设置一个标志,以便它知道正确打印吗?谢谢!
答案 0 :(得分:5)
可能您需要使用wcout
,因为您的TCHAR
可能是单一的。或转换它。
答案 1 :(得分:2)
也许你会有更好的运气
std::wcout << buf;