MessageBox产生的输出不同于Cout C++

llk*_*llk 0 c++ io

我试图通过调用它的VM地址来加载图像的名称,GetModuleFileName()这似乎正确地将值返回到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);
Run Code Online (Sandbox Code Playgroud)

我应该设置一个标志,cout以便它知道正确打印吗?谢谢!

Mic*_*ker 5

可能你需要使用wcout,因为你TCHAR可能是unicodish.或转换它.