windows - COM dll 不再注册

标签 windows dll com regsvr32

我正在尝试注册一家公司发送给我的 COM dll,用于与他们的其中一台设备通信。我以前能够在这台计算机上注册它,但几天前它开始抛出错误,所以我注销了它,现在将它传递给 regsvr32.exe 失败了

"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

我试过用 depends.exe 打开 regsvr32.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 位。

最佳答案

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

这个错误很可能出现在 64 位操作系统上,它告诉您正在使用错误版本的 regsvr32.exe。有两个,64位版本在c:\windows\system32,32位版本在c:\windows\syswow64。大多数 COM 服务器都是 32 位的,因此请明确尝试键入 c:\windows\syswow64\regsvr32 yourserver.dll

关于windows - COM dll 不再注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168825/

相关文章:

windows - 无法使用 SendMessage 将 key 发送到窗口

python - 使用两个版本的 Python (Windows) 安装 IPython

delphi - 如何用Delphi代码调试VC++内置的DLL文件?

c++ - 将 COM 事件公开给 VBScript (ATL)

android - .android\repositories.cfg无法加载

windows - OpenVPN:路由除本地网络之外的所有网络

dll - 如何使用 Marshal 类编译 C++ DLL

Delphi:找不到资源错误?

c++ - 如何在 webkit 浏览器控件中返回指向 JavaScript 的 IDispatch 指针

c++ - COM 服务器挂起检测和解决