加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何安装COM DLL的32位和64位版本并“自动选择”?

发布时间:2020-12-14 04:14:56 所属栏目:Windows 来源:网络整理
导读:我们有一个DLL(一个COM服务器),可以在32位和64位编译,但DLL使用相同的CLSID和AppID 32位版本和64位版本.这可以,还是必须改变? 我问这个是因为显然在64位机器上,我们不能同时注册32位版本和64位版本.如果32位客户端应用程序可以自动使用32位DLL,并且64位客户
我们有一个DLL(一个COM服务器),可以在32位和64位编译,但DLL使用相同的CLSID和AppID 32位版本和64位版本.这可以,还是必须改变?

我问这个是因为显然在64位机器上,我们不能同时注册32位版本和64位版本.如果32位客户端应用程序可以自动使用32位DLL,并且64位客户端应用程序可以自动使用64位DLL,那就太好了.

在相关的说明中,我们有客户端应用程序的源代码和Visual Studio 2005项目文件…我们如何编译同一应用程序的32位和64位版本?它是一个C#应用程序,它包含对我们的COM服务器DLL的引用,如下所示:

<ItemGroup> <COMReference Include="ComServer">

<Guid>{C1FADEA6-68FD-4F43-9FC2-0BC451FA5D53}</Guid>

<VersionMajor>830</VersionMajor> <VersionMinor>0</VersionMinor>

<Lcid>0</Lcid> <WrapperTool>tlbimp</WrapperTool> <Isolated>False</Isolated>

</COMReference> </ItemGroup>

如果事实证明我们需要一个单独的64位CLSID,我们如何在Visual Studio中“仅针对32位配置”进行此引用?或者我们必须有相同的源代码的单独项目:一个引用32位DLL,另一个引用64位DLL?

两个版本都可以(实际上应该)对所有内容使用相同的GUID.

在32位机器上,您无法注册或使用64位DLL,因此没有问题. 64位DLL根本不进入图片.

在64位计算机上,64位DLL在HKLM / Software / Classes / CLSID(等)中注册,32位DLL在HKLM / Software / Wow6432Node / Classes / CLSID中注册. (我想知道你在哪里得到的建议是你无法在64位计算机上注册32位DLL …)在64位计算机上运行的32位客户端将在注册表中的正常位置查找,但操作系统将默默地将其重定向到Wow6432Node键.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读