我有一個作爲Windows CE盒子上的安裝程序進程的一部分運行的.CAB文件。 CAB是用C++編寫的。在C++中執行目錄
CAB文件作爲升級過程的一部分運行兩次,但在不同時間的不同位置。我怎麼才能找出什麼目錄.CAB文件正在執行(執行目錄)只使用C++?
感謝
我有一個作爲Windows CE盒子上的安裝程序進程的一部分運行的.CAB文件。 CAB是用C++編寫的。在C++中執行目錄
CAB文件作爲升級過程的一部分運行兩次,但在不同時間的不同位置。我怎麼才能找出什麼目錄.CAB文件正在執行(執行目錄)只使用C++?
感謝
如果「C++只有」你的意思是不使用Windows API的,我不認爲標準庫有一個函數來做到這一點。
如果你可以調用一個Win32 API,你只需要調用GetModuleFileName()
作爲第一個參數NULL,你將得到當前可執行文件的路徑。
現在,問題是:我們運行.CAB,可執行文件是什麼?從.CAB提取的安裝DLL或運行.CAB的外殼組件?
您也可以嘗試GetCommandLine()
,因爲第一個條目應該是可執行路徑/名稱(它實際上是傳遞給CreateProcess()
的字符串,所以您不能100%確定)。
不知道我瞭解情況。 CAB有重複的磁盤映像?它從具有顯式(不同)開始文件夾的相同圖像運行兩次?在這兩種情況下,都不會:: GetCurrentDirectory()就足夠了? – 2010-06-14 14:46:01
Windows CE沒有「當前目錄」的概念... – Wizard79 2010-06-14 14:47:09
爲什麼你堅持使用'wince'標籤。當你使用'windows-ce'和'windows-ce'更清晰的時候是多餘的。 – Shaihi 2010-06-15 07:10:34