c++ - MessageBox 产生与 Cout C++ 不同的输出

标签 c++ io

我正在尝试通过调用 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 设置一个标志吗?所以它知道正确打印它?谢谢!

最佳答案

可能您需要使用wcout,因为您的TCHAR 可能是unicodish。或者转换它。

关于c++ - MessageBox 产生与 Cout C++ 不同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8371252/

相关文章:

c++ - 消息的所有权,使用哪种设计模式?

c++ - 如何改进我的类(class)以创建输出文件

node.js - 如何使用 Node.js 读取大文件的一部分?

java - 限制Java文件中的输入数量

c++ - 递归在指数平方中的工作?

c++ - CUDA 计算能力向后兼容性

c++ - 阅读/理解第三方代码

c++ - 构建分数面试挑战

java - 如何纠正使用 Java IO 写入文件的无提示失败?

python input() 在调用 input() 之前采用旧的标准输入