【发布时间】:2013-09-04 03:57:31
【问题描述】:
我有一个 32 com 库,想通过 64 位应用程序使用它的功能,我在互联网上搜索并设法得到这个 workaround
- 在
HKey_Classes_Root\Wow6432Node\CLSID\[GUID]下找到您的 COM 对象 GUID - 找到后添加一个新的
REG_SZ (string)值。名称应该是 AppID,数据应该是您刚刚搜索的同一个 COM 对象 GUID - 在
HKey_Classes_Root\Wow6432Node\AppID\下添加一个新密钥 - 新键的调用方式应与 com 对象 GUID 相同
- 在刚刚添加的新密钥下,添加一个新的
REG_SZ (string)值,并将其命名为DllSurrogate。将值留空 - 在
HKey_Local_Machine\Software\Classes\AppID\下创建一个新密钥
但它不适用于 Windows 7 64 位,主要问题是当我执行第 6 步时 我发现钥匙已经存在了,有人知道为什么吗?或者我该如何克服它?
这里的文档很简短
【问题讨论】:
-
步骤 3 应该创建对 32 位程序可见的密钥。更准确的键名是 HKLM\Software\Wow6432Node\Classes\AppID。第 6 步应该创建对 64 位程序可见的密钥,相同的路径减去“Wow6432Node”部分。如果您在第 3 步中创建的密钥在第 6 步的路径中可见,则您的机器出现了严重问题。不要跳过 Wow6432Node 部分。
-
您认为问题可能存在,因为我使用或使用了 32 位或 64 位 regedit 吗?问题是我用 32 或 64 regsrv32.exe 注册了库吗?
-
您是否考虑过将库重建为 64? (或者,我想一个更好的问题是,您可以访问库源吗?)
-
也许使用 .net 作为适配器来桥接 API 调用