我一直使用_pgmptr
,这是Windows提供的char*
,它提供了可执行文件的完整路径。但是,最近更新MinGW后,它似乎被定义为NULL。有没有其他的方式来获得完整的可执行文件路径,没有它的名字(比如C:\program.exe
只是C:\
对我所做的事情没问题)?_pgmptr发生了什么?
我很喜欢平台无关的方式或Windows特定的方式,只要它是可靠的。
我一直使用_pgmptr
,这是Windows提供的char*
,它提供了可执行文件的完整路径。但是,最近更新MinGW后,它似乎被定义为NULL。有没有其他的方式来获得完整的可执行文件路径,没有它的名字(比如C:\program.exe
只是C:\
对我所做的事情没问题)?_pgmptr发生了什么?
我很喜欢平台无关的方式或Windows特定的方式,只要它是可靠的。
GetModuleFileName
是检索程序路径和名称的API函数。
您可以使用'argv [0]'(可能需要将其复制到一个全局变量) –
这就是问题所在,尽管... argv [0]可能是一些其他值,具体取决于程序如何从命令行与资源管理器。 – rsethc
尽管可以在'argv [0]'中手动调用'exec'或类似的东西时完全不同),我相信它适用于资源管理器启动和命令行启动应用程序。 –