将32位COM DLL注册到64位Windows 7

Mur*_*rat 30 com dll windows-7

我有一个32位的COM组件DLL,这个DLL是用Delphi编写的.这是一个Win32 DLL.我想在.NET平台上的Visual C#项目中使用此DLL.

我无法在项目中添加对此DLL的引用.我尝试在Windows 7 64位中以管理员身份在命令提示符中注册它,但是我收到此错误:

检查模块是否与regsvr32.exe的x86(32位)或x64(64位)版本兼容.

首先我把DLL文件放到windows/system32文件夹中.然后我以管理员身份打开命令提示符.我编写regsvr32 huginalpha.dll并执行此命令.但是我得到了错误.我能做什么?

sha*_*oth 52

问题可能是您尝试使用64位版本的regsvr32注册32位库.请参阅此知识库文章 - 您需要从windows\SysWOW64为32位库运行regsvr32.

  • 确实是+1.并且该DLL应该*不存储在c:\ windows\system32中,也就是64位组件. (8认同)
  • 是的,因此名为32的文件实际上是64位,而32位版本位于名为WOW64的目录中. (2认同)

小智 29

对于Windows 64位平台中的32位DLLS:

  1. 复制whatever.dll到 c:\windows\sysWOW64\
  2. 打开CMD提示AS管理员(非常重要)

在CMD窗口中:

  1. CD c:\windows\sysWOW64\
  2. regsvr32 whatever.dll

然后,您将c:\windows\sysWOW64\regsvr.exe在32位dll上执行32位regsvr()

  • +1你在管理员的压力下压力挽救了我的生命!:) (3认同)
  • 如果您不以管理员身份运行,则会说安装成功,但不会注册.没有其他反馈你会收到(大坝,微软!). (3认同)