我有注册DLL文件的问题 .
我将 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
In both cases, an error occurs: 模块"C:\Windows\SysWOW64(or 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)我从 C:\Program Files\Java\jre1.8.0_60\bin\server 复制到 C:\windows\system32 ,因为我的test.dll使用的是jvm.dll .
我试着写,因为它写的是here,但没有结果......
Help me please.
1 回答
我不会将dll复制到系统路径中,而是将它们存储在自己的文件夹中 .
您可以使用dependency walker来检查dll及其依赖项的依赖项位 . 依赖性walker将在dll的图标中添加一个小的64 . 没有混合物允许 . 它的64或它是32位 .
test.dll的位数是否与jvm.dll的位数匹配 .
另外,您可以使用dependency walker加载regsvr32.exe并使用Profile-> Start Profiling来查看在注册控件期间从哪个路径中选择哪些dll .
我认为不可能只复制jvm.dll但你需要将它添加到路径,因为它作为额外的依赖项 . 依赖步行者也会表现出来 .