c++ - GetModuleFileName 不返回路径

标签 c++ visual-studio getmodulefilename

我正在尝试使用 VS c++ 获取 win7 下的当前目录,但是

TCHAR pBuf[MAX_PATH];
int bytes = GetModuleFileName(NULL, pBuf, MAX_PATH);
std::cout << bytes << "   " << pBuf << "   " <<   GetLastError() << std::endl;

返回长度 58,我认为 pBuf 中的指针指向 68。错误代码为 0。

谢谢!

最佳答案

您的<< operator不接受const TCHAR*作为字符串参数,并将其打印为通用指针。

解决该问题的方法之一是使用 A API 版本(CHAR 缓冲区和 GetModuleFileNameA 函数):

CHAR pBuf[MAX_PATH];
int bytes = GetModuleFileNameA(NULL, pBuf, MAX_PATH);
std::cout << bytes << "   " << pBuf << "   " <<   GetLastError() << std::endl;

关于c++ - GetModuleFileName 不返回路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20854513/

相关文章:

c++ - 尝试用用户输入填充数组

c++ - WinAPI:更改位置时找到自己可执行的目录

visual-studio - 组织 Visual Studio 解决方案的最佳实践

go - 创建可执行文件后获取当前文件名

c++ - GetModuleFileNameA 返回奇怪的结果

c++ - 命名空间上的变量总是有默认值吗?

c++ - 如何使用 C++ 从 mdb 文件中读取数据?

C++ 方法覆盖

visual-studio - 以编程方式更新 tfs 工作区中的文件

python - 使用 Visual Studio for Python 文件