2009-09-01 69 views
0

我正在尋找在我的ActiveX CAB文件中部署系統DLL的方法。 CAB無法更新系統文件,整個安裝失敗。完美的是,我想將DLL複製到ActiveX安裝文件夾中。在CAB文件內部署系統DLL

我最好的建議(我沒有嘗試它)使用INF文件掛鉤與一些獨立的安裝程序,但我不知道有另一種方式?

任何其他想法將不勝感激...

+0

哪個系統的DLL? – 2009-09-01 14:11:42

+0

我使用dbghelp.dll進行轉儲創建,但在Win2K中dbghelp.dll不包含MiniDumpWriteDump。所以我需要使用更新的版本,並且不能替換系統的版本。 – Eugene 2009-09-01 15:16:34

+0

也許這是一個愚蠢的問題,但是真的很難要求你需要能夠在Win2K上調用MiniDumpWriteDump嗎?它可能會減少頭痛使用LoadLibrary/GetProcAddress針對這個二進制文件的系統副本,如果缺少入口點(因爲它將在2K),只是「優雅地失敗」......它應該有希望存在於XP +中...... – reuben 2009-09-03 07:47:10

回答

0

打包你的DLL作爲主ActiveX控件的資源。使用您自己的代碼將其寫入文件。

惡意軟件行業有很多這方面的經驗,應該提供示例代碼。

+0

我決定拒絕Win2K支持,但是這個答案看起來更有希望... – Eugene 2009-09-22 04:54:51

0

您可以將DLL安裝到ActiveX安裝文件夾中並動態加載dll(使用LoadLibrary)及其方法(使用GetProcAddress)。
這樣你就可以控制從哪裏加載dll並使用本地副本而不是系統。

+0

我只能用獨立安裝程序(.msi,* .exe)將DLL安裝到ActiveX安裝文件夾。在這種情況下,所有人都應該工作,即使沒有後期約束 但問題是如何從CAB文件做到這一點? CAB擁有DestDir密鑰,但它的價值在於其中一個系統位置。 順便說一句,我想我正在使用dbghelp.lib中的MiniDumpWriteDump,它對dbghelp.dll有依賴性。 – Eugene 2009-09-01 15:31:13