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

前端之家收集整理的这篇文章主要介绍了如何安装COM DLL的32位和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键.

原文链接:https://www.f2er.com/windows/365008.html

猜你在找的Windows相关文章