如何在64位Windows 7上注册一个64位的COM dll?

3
我正在尝试在x64 Windows 7上注册一个x64 COM服务器DLL,以便在x64 Office中使用。我已经按照这里的说明操作,但是我无法注册DLL。当我尝试注册时,我会收到以下错误提示:

regsvr error message

我使用的命令是 regsvr32 my_x64_com_server.dll

为什么会出现这种情况,有没有解决方法?

提前感谢。


这应该是未经限定的路径的默认设置,但您是否尝试过显式运行“%windir%\System32\regsvr32.exe my_x64_com_server.dll”? - Cody Gray
2个回答

7
命令是如何运行的?是从进程中还是从命令行中运行?
确保命令是从64位进程(或64位cmd.exe控制台窗口)中运行。否则,%windir%\System32\regsvr32.exe 命令将被重定向到 %windir%\SysWoW64\regsvr32.exe 并且会运行一个32位的regsrv32(无法注册64位的DLLs)。
您也可以尝试使用 %windir%\sysnative\regsvr32.exe,它将重定向到真正的%windir%\System32\目录(但只能在32位进程中使用,因此如果您使用它,请注意确保没有人试图从64位进程中运行该命令)。
有关详细信息,请参见MSDN上的文件系统重定向器

谢谢大家的回复。我的问题已经解决了,但我不确定原因。我清理并重新构建了所有源代码,并按照上面的说明进行操作,一切都如预期般工作。 - Pat Mustard
我这里没有 sysnative 目录。你的意思是什么? - sergiol

0

当我将Windows 2003升级到Windows 2012服务器时,我遇到了类似的问题。下面的解决方案帮助我解决了这个问题。我需要将dll注册为32位。

**

- 解决方案:

**以管理员身份打开命令提示符

**输入您要执行dll的目录 执行regsvr32


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接