要确定我的exe路径,我不知道应该使用哪个代码。请给我解释我们何时以及为何使用:
1。 ExtractFilePath(ParamStr(0))
2。 ExtractFilePath(Application.ExeName)
因为两个代码都呈现相同的输出。
C:\Users\Bianca\Documents\RAD Studio\Projects\Exam1\Win32\Release\
C:\Users\Bianca\Documents\RAD Studio\Projects\Exam1\Win32\Release\
它们都给您相同的结果,但是存在细微的差异。
Application.ExeName引用VCL应用程序对象。使用此属性要求您使用Vcl.Forms单元。在内部,这确实调用了ParamStr(0)函数。
请注意,FireMonkey TApplication类不具有此属性(从XE5开始)。因此,如果您使用FireMonkey,则无法调用Application.ExeName。而且,如果您曾经将VCL项目迁移到FireMonkey,则必须重写它。
ParamStr函数OTOH是系统单位,并且是多平台的(Win,Mac,iOS和Android,取决于所使用的Delphi版本的OC)。在Windows上,ParamStr(0)调用GetModuleFileName函数,而在其他平台上,它解析命令行以返回第一个标记,该标记应为正在运行的可执行文件的完整路径和名称。(感谢Rob Kennedy的更正)
所以...建议您直接使用ParamStr(0)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句