【发布时间】:2010-12-23 23:09:53
【问题描述】:
我正在使用 Visual Studio 2008,我想获取 .exe 文件的绝对路径? 意思是当用户打开exe文件时,我需要知道它的绝对路径??
提前致谢
【问题讨论】:
标签: c++ visual-studio-2008 path
我正在使用 Visual Studio 2008,我想获取 .exe 文件的绝对路径? 意思是当用户打开exe文件时,我需要知道它的绝对路径??
提前致谢
【问题讨论】:
标签: c++ visual-studio-2008 path
在 Windows 下尝试以下操作:
char ExeName[8192]; // or what ever max. size you expect.
if (0 != GetModuleFileName (NULL, ExeName, sizeof (ExeName)))
{
printf ("Your array was probably not large enough. Call GetLastError for details\n");
}
如果你为 unicode 编译使用 wchar_t。
【讨论】:
使用_pgmptr 或_wpgmptr 全局变量可能是最简单的方法。*(它们在stdlib.h 中。)
*注意:在极少数情况下,这可能不起作用...在这种情况下,请使用GetModuleFileName(NULL, ...);
【讨论】:
如果要获取当前进程的路径,应该使用API函数:
GetModuleFileName
但是,如果你想获得不是你写的进程的完整路径,使用
GetModuleFileNameEx
上述函数需要比 GetModuleFileName 多一个参数 - 它是应该获取路径的进程的句柄。在MSDN上有更详细的解释。
【讨论】: