2011-08-23 144 views
1

我正在嘗試註冊一個公司發送給我的COM DLL,用於與他們的某個設備通話。我以前能夠進行註冊此計算機上,但前幾天就開始拋出錯誤,所以我註銷了它,現在它傳遞到的regsvr32.exe失敗,COM dll不再註冊

"The module IRAnalyzerCOM.dll" failed to load 

Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files 

The specified procedure could not be found 

我試着打開的regsvr32.exe與Depends.exe分析,和分析它,看看有什麼錯誤彈出,而我最終得到的是:

... 
Loaded "IRANALYSERCOM.DLL" at address 0x0000000010000000. Successfully hooked module. 
Unloaded "IRANALYSERCOM.DLL" at address 0x0000000010000000. 
LoadLibraryExW("C:\IRAnalyserCOM.dll", 0x0000000000000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: %1 is not a valid Win32 application (193). 
Loaded "" at address 0x00000000002A0000. Successfully hooked module. 
Unloaded "" at address 0x00000000002A0000. 

(我坐在它在C:\所以有沒有可能有任何空間在路徑名問題)。您可能會注意到regsvr32.exe確實似乎嘗試加載「」,實際上,depends.exe在模塊列表中顯示「<空字符串」模塊。 (顯然無法加載)

此.DLL在另一臺桌面上成功註冊,並且都運行Windows 7 64位。

+0

您是否嘗試過在運行regsvr32 c:\ IRAnalyserCOM.dll之前將當前目錄更改爲c:\ windows \ system32?你有沒有明確比較這臺機器上的DLL和另一臺機器上的DLL,以確保該文件沒有被損壞? –

+0

您是否執行過「dumpbin/imports」來查看二進制文件依賴哪個DLL來加載?那麼你的PATH中的所有DLL是什麼? – selbie

回答

4

Error: %1 is not a valid Win32 application (193).

此錯誤可能是一個64位操作系統上,它是告訴你正在使用的regsvr32.exe的版本錯誤。有兩個:c:\ windows \ system32中的64位版本和c:\ windows \ syswow64中的32位版本。大多數COM服務器是32位,所以明確嘗試輸入c:\ windows \ syswow64 \ regsvr32 yourserver.dll

+0

+1這就是我正要說的! – ewall

+0

謝謝,我不知道這個!精彩的提示。 :) – staticfloat