gpt4 book ai didi

com - 我的 32 位和 64 位 COM 组件可以共存于同一台机器上吗?

转载 作者:行者123 更新时间:2023-12-04 18:17:17 25 4
gpt4 key购买 nike

我有一个主要由 ASP 使用的 32 位 COM 组件,我们也有 64 位版本。

64 位版本在功能上是相同的,它也使用相同的 ProgID(据我所知,相同的 CLSID 等)。

我是否可以在与 32 位版本相同的机器上安装/regsvr 64 位版本(显然在不同的文件夹中)并让我现有的 32 位应用程序继续使用 32 位组件,而我的 64 位应用程序使用 64 位版本?

这些是用 C++ 而非 .NET 编写的 native 代码组件。

最佳答案

这应该是可能的。

在 64 位 Windows 上,registryfile system为 32 位应用程序重定向。 32 位 COM dll 的注册将位于注册表中的单独位置 (HKLM\Software\Wow6432Node\Classes),并且您的 COM 组件应位于单独的文件夹中,64 位位于 Program Files 下,32 位位于 Program Files 下(x86)。 32 位应用程序的注册表/文件重定向应该使这项工作透明化。

组件本身可能会阻止这种情况发生 - 例如,如果它创建的全局资源最终会在 32 位和 64 位版本之间发生冲突。

这种情况在 64 位 Windows 上已经存在。在我的 64 位系统上,我有:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID{8856F961-340A-11D0-A96B-00C04FD705A2}\InProcServer32\Default = C:\Windows\SysWow64\ieframe.dll



HKEY_CLASSES_ROOT\CLSID{8856F961-340A-11D0-A96B-00C04FD705A2}\InProcServer32\Default = C:\Windows\System32\ieframe.dll

同一系统上的 32 位和 64 位版本的 WebBrowser 控件。

关于com - 我的 32 位和 64 位 COM 组件可以共存于同一台机器上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1105031/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com