2015-09-22 82 views
0

我註冊dll文件時遇到問題。在Windows 7上註冊DLL文件的問題64位

我複製Test.dll的文件C:\ WINDOWS \ SysWOW64中C:\ Windows \ System32下目錄。

我嘗試使用32位版本Regsvr32.exe註冊:

C:\Windows\SysWOW64> c:\Windows\SysWOW64\regsvr32.exe C:\Windows\SysWOW64\test.dll 

並採用64位版本的regsvr32.exe:

C:\Windows\System32> c:\Windows\System32\regsvr32.exe C:\Windows\System32\test.dll 

在兩種情況下,誤差發生: 模塊「C:\ Windows \ SysWOW64(或System32)\ test.dll」可能與您正在運行的WIndows版本不兼容。檢查模塊是否與regsvr32.exe的x84(32位)或x64(64位)版本兼容。

我檢查Test.dll的依賴關係:
- C:\ WINDOWS \ SYSTEM32 \ KERNEL32.DLL
- C:\ WINDOWS \ SYSTEM32 \ USER32.DLL
- C:\ WINDOWS \ SYSTEM32 \ ADVAPI32 .DLL
- .........
- C:\ WINDOWS \ SYSTEM32 \ JVM.DLL

最後一個DLL(JVM.DLL)我從ç複製:\ Program Files文件\的Java \ jre1.8.0_60 \ bin \ serverC:\ windows \ system32,因爲我的te使用jvm.dll的st.dll。

我試圖做的,因爲它是寫here,但是沒有結果......

請幫助我。

+0

不要將文件複製到system32文件夾中,將它們存儲在自己的文件夾中。 – Totonga

+0

我試過 - 沒有幫助。同樣的錯誤。 –

+0

無論這是32位還是64位可執行文件,您都必須先下定決心。它不能兼而有之。然後你需要確保你複製它需要的任何DLL的正確風格。墨菲法則規定這實際上是一個32位可執行文件,並且您複製了64位版本的jvm.dll。所以它不能工作:) –

回答

0

我不會將dll複製到系統路徑中,而是將它們存儲在自己的文件夾中。

您可以使用dependency walker來檢查dll及其依賴項的依賴性位數。依賴walker會將一個小的添加到dll的圖標中。沒有混合物允許。它的64位或32位。

test.dll的位數是否與jvm.dll的位數相匹配。

在另外你可以使用Dependency Walker中加載的regsvr32.exe和使用簡介 - >開始分析看從哪個路徑註冊您的控制過程中choosen的DLL。

我會認爲這是不可能的只是複製jvm.dll,但你需要將它添加到路徑,因爲它作爲額外的依賴。依賴步行者也會展示這一點。

+0

我使用依賴walker。程序之上的依賴關係列表。 問題和問題是不同的:當您不斷地使用它拋出的錯誤(模塊「C:\ Windows \ SysWOW64(或System32)\ test.dll」可能與您正在運行的WIndows版本不兼容。檢查模塊是否與regsvr32.exe的x84(32位)或x64(64位)版本兼容。)。 該系統我有64位。 –