我有一个.CAB文件,它作为Windows CE机器上安装程序进程的一部分运行。 CAB是用C ++编写的。
CAB文件作为升级过程的一部分运行两次,但在不同时间在不同位置运行。如何才能使用C ++找出正在执行.CAB文件的目录(执行目录)?
由于
答案 0 :(得分:4)
如果仅使用“C ++”,则表示不使用Windows API,我认为标准库不具备执行此功能的功能。
如果你可以调用Win32 API,你只需要调用GetModuleFileName()
并将NULL作为第一个参数,然后你将得到当前可执行文件的路径。
现在,问题是:我们运行.CAB,可执行文件是什么?从.CAB中提取的安装DLL,或运行.CAB的shell组件?
您也可以尝试GetCommandLine()
,因为第一个条目应该是可执行路径/名称(它实际上是传递给CreateProcess()
的字符串,因此您无法100%确定它)