我有一个由ASP大多采用32位的COM组件,我们也有64位版本。
64位版本在功能上,它也使用相同的ProgID(而据我所知相同CLSID的等)。
我可以安装/ regsvr在同一台机器上的64位版本,32位版本(显然在不同的文件夹),并有我现有的32个应用程序继续使用32位组件,而我的64个应用程序消耗的64位版本?
这些都是用C编写的本地代码组件++和.NET没有。
我有一个由ASP大多采用32位的COM组件,我们也有64位版本。
64位版本在功能上,它也使用相同的ProgID(而据我所知相同CLSID的等)。
我可以安装/ regsvr在同一台机器上的64位版本,32位版本(显然在不同的文件夹),并有我现有的32个应用程序继续使用32位组件,而我的64个应用程序消耗的64位版本?
这些都是用C编写的本地代码组件++和.NET没有。
这应该是可能的。
在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浏览器控件的。