可以在我的32位和64位COM组件共同驻留在同一台机器上?(Can my 32 bit and 64

2019-09-18 03:35发布

我有一个由ASP大多采用32位的COM组件,我们也有64位版本。

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

我可以安装/ regsvr在同一台机器上的64位版本,32位版本(显然在不同的文件夹),并有我现有的32个应用程序继续使用32位组件,而我的64个应用程序消耗的64位版本?

这些都是用C编写的本地代码组件++和.NET没有。

Answer 1:

这应该是可能的。

在64位的窗口中, 注册表和文件系统被重定向为32位应用程序。 注册为32位COM DLL的将是在注册表(HKLM \ SOFTWARE \ Wow6432Node \ Classes下)单独的位置,你的COM组件应该生活在不同的文件夹,Program Files下Program Files下的64位和32位(86)。 对于32位应用程序的注册表/文件重定向应该使这项工作透明。

这可能是组件本身可以防止这种情况 - 例如,如果它创建也将结束了32位和64位版本之间冲突的全球资源。

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

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \类\ CLSID {{8856F961-340A-11D0-A96B-00C04FD705A2} \ InProcServer32中\默认为C:\ WINDOWS \ SYSWOW64 \ ieframe.dll

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

32位和在同一系统上的64位版本的web浏览器控件的。



文章来源: Can my 32 bit and 64 bit COM components co-reside on the same machine?
标签: com dll 64-bit