0
我正在爲Visual Studio 2010中的Internet Explorer編寫一些HBO。在我的開發機器上,所有工作都很好。爲了註冊DLL,我使用如下的系統工具regsvr32。針對IE的基於ATL的HBO插件:其他機器上丟失的庫
regsvr32 plugin.dll
但是,當我嘗試做相同的另一臺機器上,我得到一個錯誤信息說系統無法加載DLL模塊。我很確定我的擴展DLL的路徑是正確的,所以我相信系統不符合其他依賴關係。在VS中,我在「發佈」模式下構建我的插件,因此它應該包含在其他地方運行的所有必需的東西。我也改變/ MD到/ MT(朋友的建議 - 可惜它不工作)。
我一直在尋找系統事件日誌對付額外的信息,但沒有成功。那我該怎麼辦?我的意思是如何檢查哪些庫應該放在另一臺機器上(或者很明顯 - 然後告訴我這些名稱)。
編輯:我發現了一個解決方案,也許有人會發現它的幫助:在Visual Studio中不含引號加「atl.lib」以鏈接的附加依賴關係,並都應該很好地工作。
問候
1 - 確保您有足夠的權限在另一臺機器上。如果是UAC的Vista/7,則必須以管理員身份運行regsvr32。 2 - 使用Sysinternal的ProcMon來查看註冊期間加載的文件。如果文件丟失,您會在日誌中看到它。 – eran
@eran我在兩臺機器上都使用Windows XP。用ProcMon我發現我需要包含atl100.dll文件以及我的BHO。但還有一個問題:現在我得到這個錯誤信息:「plugin.dll不是一個可執行文件,並且沒有註冊助手註冊這個文件類型。」有沒有搞錯?這一次ProcMon沒有多大幫助。 – stilz
如果問題確實解決了,您可以將解決方案編寫爲答案。然後,檢查旁邊的V,所以它會顯示爲已解決。 – eran