0

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

4

1 回答 1

0

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

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

于 2012-05-04T17:28:51.763 回答