关于GetModuleFileName一直返回NULL的问题

5207 2009-02-22 12:44:09
下面这个函数目的是获取当前运行的应用程序的目录,但使用GetModuleFileName返回的总是0.不知道为何。

bool GetCurrentPath(LPTSTR szPath)
{
HMODULE handle = GetModuleHandle(NULL);
DWORD dwRet = GetModuleFileName(handle, szPath, MAX_PATH);
if(0 == dwRet)
{
return false;
}
else
{
TCHAR* p = szPath;
while(*p)++p; //let p point to '\0'
while('\\' != *p)--p; // let p point to '\\'
*p = '\0'; //get the path

return true;
}
}
...全文
230 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
5207 2009-08-17
  • 打赏
  • 举报
回复
这个问题很是奇怪,以前我也遇到过,但是忘了怎么解决的。

楼主看看是不是有什么头文件引用有问题
5207 2009-02-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 singlerace 的回复:]
应该用:
GetModuleFileName(NULL, szPath, MAX_PATH);

[/Quote]

结果一样呀。
singlerace 2009-02-22
  • 打赏
  • 举报
回复
应该用:
GetModuleFileName(NULL, szPath, MAX_PATH);
5207 2009-02-22
  • 打赏
  • 举报
回复
GetLastError发现是87错误。应该是Handle不正确导致。但不知道如何解决

19,504

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧