【问题标题】:How to get the path of the exexuter in C++?如何在 C++ 中获取执行器的路径?
【发布时间】:2010-12-23 23:09:53
【问题描述】:

我正在使用 Visual Studio 2008,我想获取 .exe 文件的绝对路径? 意思是当用户打开exe文件时,我需要知道它的绝对路径??

提前致谢

【问题讨论】:

    标签: c++ visual-studio-2008 path


    【解决方案1】:

    在 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。

    【讨论】:

      【解决方案2】:

      使用_pgmptr_wpgmptr 全局变量可能是最简单的方法。*(它们在stdlib.h 中。)

      *注意:在极少数情况下,这可能不起作用...在这种情况下,请使用GetModuleFileName(NULL, ...);

      【讨论】:

        【解决方案3】:

        如果要获取当前进程的路径,应该使用API​​函数:

        GetModuleFileName
        

        但是,如果你想获得不是你写的进程的完整路径,使用

        GetModuleFileNameEx
        

        上述函数需要比 GetModuleFileName 多一个参数 - 它是应该获取路径的进程的句柄。在MSDN上有更详细的解释。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-09-28
          • 2019-01-27
          • 1970-01-01
          • 2014-01-30
          • 1970-01-01
          • 1970-01-01
          • 2013-11-13
          • 2011-02-07
          相关资源
          最近更新 更多