我有一个32位COM组件,主要由ASP使用,我们也有64位版本.
64位版本在功能上是相同的,它也使用相同的ProgID(据我所知,相同的CLSID等).
我可以在32位版本的同一台机器上安装/ regsvr 64位版本(显然在不同的文件夹中)并使我现有的32位应用程序继续使用32位组件,而我的64位应用程序使用64位版本?
这些是用C++而不是.NET编写的本机代码组件.
这应该是可能的.
在64位窗口上,注册表和文件系统被重定向到32位应用程序.注册32位COM dll将位于注册表中的单独位置(HKLM\Software\Wow6432Node\Classes),并且您的COM组件应位于单独的文件夹中,64位位于Program Files下,32位位于Program Files下(86).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控件.
| 归档时间: |
|
| 查看次数: |
2236 次 |
| 最近记录: |