如何获得程序路径

m4t*_*4tx 4 c++ gtk

可能重复:
如何在C中查找可执行文件的位置

我正在使用GTK +在C++中编写一个多平台应用程序,我遇到了问题.我必须得到程序路径.例如,当节目在/home/user/program(或C:\Users\user\program.exe)时,我有/home/user/(或C:\Users\user\).

可以以及如何做到这一点?

Oli*_*del 6

对于Win32/MFC c ++程序:

char myPath[_MAX_PATH+1];
GetModuleFileName(NULL,myPath,_MAX_PATH);
Run Code Online (Sandbox Code Playgroud)

另请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/ms683156%28v=vs.85%29.aspx上的评论 ,

本质上:WinMain不包含lpCmdLine中的程序名,main(),wmain()和_tmain()应该在argv [0]中包含它,但是:

注意:操作系统为进程提供的命令行中的可执行文件的名称不一定与调用进程为CreateProcess函数提供的命令行中的名称相同.操作系统可以在没有完全限定路径的情况下提供可执行名称的完全限定路径.

  • 好的,但也许其他人可能觉得它很有用;) (11认同)

Jay*_*ker 5

argv[0]包含程序名称和路径。我在这里错过了什么吗?

  • 您不应该信任 `argv[0]` - 请参阅[链接](http://stackoverflow.com/questions/2050961/is-argv0-name-of-executable-an-accepted-standard-or-just-a -常见-方便) (6认同)