【发布时间】:2014-05-09 20:53:49
【问题描述】:
我一直使用_pgmptr,它是Windows 提供的char*,它提供了可执行文件的确切完整路径。但是,在最近更新 MinGW 之后,它似乎被定义为 NULL 。有没有其他方法可以获得完整的可执行路径,没有它的名字(比如代替C:\program.exe 只是C:\ 就可以了我正在做的事情)?
我可以使用独立于平台的方式或特定于 Windows 的方式,只要它是可靠的。
【问题讨论】:
-
可以使用
argv[0](可能需要复制到全局变量中) -
就是这样,不过... argv[0] 可能是其他值,具体取决于程序是从命令行启动还是从资源管理器启动。
-
虽然在手动调用
exec或类似名称时可以在argv[0]中添加完全不同的内容),但我相信它适用于资源管理器启动和命令行启动的应用程序。 -
@MatsPetersson:不,如果您从命令行启动程序,
argv[0]将只是在命令行中输入的任何内容。通常这意味着只是可执行文件的名称,没有路径,没有扩展名。