我重構舊的InstallShield應用程序,我需要執行調用從自定義DLL中的函數動作。不幸的是,這個動作執行的功能取決於另一個自定義的dll。所以我的問題是:「是否有可能有一個自定義的DLL依賴於另一個自定義的DLL,如果是的話?」的Installshield使用自定義DLL從另一個定義DLL
當我嘗試運行它與錯誤崩潰安裝程序「安裝程序正在完成之前中斷...」然後我複製了第二個自定義的dll的文件夾,我加入到PATH,一切都很好。當然,我不能指望我的顧客手動做到這一點。
我使用InstallShield 2008年,但我相信,回答我的問題將是所有版本中相同。
編輯:也許我的問題是不夠清楚我會給例如: 比方說,我有A.DLL具有功能:
UINT __stdcall
PerformAction(MSIHANDLE hInstall) // IN
{
...
help();
...
}
幫助()在B.DLL定義。現在,當我創建一個新的動作我設置它的DLL是A.DLL和它的函數名的performAction可以,但沒有辦法,表示這取決於B.DLL 當我複製到B.DLL包括到PATH的文件夾安裝程序工作正常,但如果我不這樣做失敗。
你怎麼知道安裝屏蔽從SUPPORTDIR使用文件?你可以舉例說明我描述的情況: –
InstallShield將把文件解壓到SUPPORTDIR,並用目錄的路徑設置一個同名的屬性(使用MsiGetProperty)。從那裏你可以使用LoadLibrary()將你的DLL加載到內存中。 –