GetModuleFileName 获取程序全路径没有扩展名

wenhuakaifa 2016-03-25 10:35:04
用GetModuleFileName获取程序路径得到形如:“D:\\test\\test.”,扩展名exe不见了,且GetModuleFileName返回值不为0,可是在里面同样安装的另一程序获取就没有问题。请问有没有清楚是什么原因造成的
...全文
362 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenhuakaifa 2016-04-08
  • 打赏
  • 举报
回复
#6 不是偶然现象哦,每次都出现
「已注销」 2016-03-31
  • 打赏
  • 举报
回复
传 MAX_PATH 不需要 MAX_PATH - 1。不过不知道为何出错,你可以重启电脑试试,可能是偶然情况吧。
微型蚂蚁 2016-03-25
  • 打赏
  • 举报
回复
DWORD GetModuleFileName( HMODULE hModule, LPTSTR lpFilename, DWORD nSize ); nSize是不是太小?
wenhuakaifa 2016-03-25
  • 打赏
  • 举报
回复
非常奇怪的现象:就这个exe不好用,换了一个就好用了,放在别的电脑上也是好用的。
wenhuakaifa 2016-03-25
  • 打赏
  • 举报
回复
#3
char szFile1[MAX_PATH];
	memset(szFile1, 0, MAX_PATH);
	if(GetModuleFileName(NULL, szFile1, MAX_PATH - 1) == 0)
	{
		memset(szLog, 0, 128);
		sprintf_s(szLog, 127, "1出现错误,错误代码%d", GetLastError());
		LogFile(szLog);
	}
Pokeeeer 2016-03-25
  • 打赏
  • 举报
回复
你exe的全路径是D:\\test\\test.exe,但是GetModuleFileName获取到的是D:\\test\\test.是这个意思吧? 你说的260应该是MAX_PATH。 首先,把你调用GetModuleFileName的段落代码贴上来 另外
TCHAR path[MAX_PATH];
GetModuleFileName(NULL,path,MAX_PATH)
这样调用试试。
wenhuakaifa 2016-03-25
  • 打赏
  • 举报
回复
#1 不是啊,size = 260,而且就放在根目录下,这个大小足够用了

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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