GetModuleFileName没有返回Path

时间:2013-12-31 08:52:11

标签: 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.

谢谢!

1 个答案:

答案 0 :(得分:3)

您的<< 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;