Windows 64位浏览器插件注册问题

Windows 64位浏览器插件注册问题,windows,com,64-bit,regsvr32,Windows,Com,64 Bit,Regsvr32,我为资源管理器编写了一个COM Dll,它扩展了windows上下文菜单,通过regsvr32注册可以在32位windows上正常工作,但在64位上它无法在没有任何线索的情况下正常工作。regsvr32报告注册成功,但Dll不工作。我试图从SysWow64目录和system32调用regsvr32,但据我猜测,这并不是原因。检查注册表-所有内容都写入注册表,当然是wow3264Node(因为安装在64位操作系统上)。还是什么都没发生。目前很难提供任何具体信息。有人能提出或指出这种行为的其他可能原

我为资源管理器编写了一个COM Dll,它扩展了windows上下文菜单,通过regsvr32注册可以在32位windows上正常工作,但在64位上它无法在没有任何线索的情况下正常工作。regsvr32报告注册成功,但Dll不工作。我试图从SysWow64目录和system32调用regsvr32,但据我猜测,这并不是原因。检查注册表-所有内容都写入注册表,当然是wow3264Node(因为安装在64位操作系统上)。还是什么都没发生。目前很难提供任何具体信息。有人能提出或指出这种行为的其他可能原因吗。提前感谢。

您需要编译64位的DLL。注册码写入
Wow6432Node
表示DLL是32位的。在64位操作系统上,资源管理器是一个64位进程,因此只能加载64位shell扩展


不要忘记在64位机器上注册32位和64位版本的shell扩展,以便任何32位程序都可以看到您的shell扩展。您可以使用
C:\Windows\SysWOW64\regsvr32

来实现这一点。该插件是为i86和amd64体系结构构建的,因此在当前情况下并非如此。存在注册表树-一个用于32 WOW6432节点,另一个用于本机win64注册表路径。谢谢你的建议。任何可能导致此类问题的其他方面?什么是i86?你是说x86吗。您的评论与您在问题中所说的相矛盾。x86-这是一个关于矛盾的打字错误-那是关于wow6432node的?请澄清您说过注册表设置已写入wow6432node,并且您安装了amd64 dll。我明白了,这些说法是矛盾的。将澄清-x86编译的Dll转到该注册表路径(wow6432node),64位转到本机节点(我说了所有内容-这是一个错误)。看来这不是问题。我认为重要的是要提到32位版本也要注册