一个Com互操作DLL的多个版本
Multiple versions of a Com Interop DLL
我有一个使用Com互操作构建的。net 2.0 DLL,因此我可以从vs6中开发的两个不同的c++/MFC应用程序访问它。
目前,一个c++应用程序(App1)使用一种形式的。net DLL (Lib1),另一个(App2)使用另一种形式(Lib2)。我想把这些独立的库组合成一个代码库(它们应该是),但我仍然需要它们是两个独立的库。然而,我不知道如何注册这两个独立的库,如果他们有相同的名称。这能做到吗?我现在正在做的事情还有别的选择吗?
App1通过调用
来访问它的库版本:hr =::CLSIDFromProgID(L"Lib1. h ")设备",和clsid);App2通过调用:
来访问其版本的库:hr =::CLSIDFromProgID(L"Lib2. h . r ")设备",和clsid);
这里你可以做两件事
-
你可以为两个不同的表单设置两个不同的方法,这样你就可以有一个COM对象,它暴露了两个方法,可以被两个不同的应用程序使用
-
你可以做的第二件事是,为你的com dll设置两个不同的GUID,这样,你可以有相同名称的dll,但两个不同的代码。虽然不建议这样做,但它是dll地狱的根本原因。
dll (.Net)中的guid
相关文章:
- 导入库可以跨dll版本工作吗
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 不同的Visual Studio版本中缺少.dll
- 链接库错误 c/缺少 dll/错误版本?
- 如何将_RICHEDIT_VER(riched20.dll)升级到版本3或更高版本
- 如果使用低于 VS2015 的 vc++ 编译器版本编译,则 DLL 中的访问冲突
- 当使用CreateObject从VBScript引用DLL时C++如何处理DLL版本?
- Microsoft Visual Studio 2008,版本9.0.30739.1 SP,DLL构建错误
- 创建 "no-op" DLL 版本?
- 由于mcordbi.dll的错误版本,托管调试不再起作用
- 系统DLL如何与不兼容版本的Visual Studio一起使用
- 窗口如何处理加载两个不同版本的 DLL
- 调用64位C/C++DLL的C#应用程序崩溃,但运行32位版本
- Windows 10未加载版本可执行文件的DLL
- Visual Studio 2008版本内部版本未装饰DLL导出
- 如何创建受版本控制的 DLL
- 在C++中获取 DLL 版本
- 由于msvcp120d.dll,发布版本崩溃
- 调用原始版本的DLL挂钩函数时,我得到了无限递归
- 我的调试版本dll使用了可重新分发和崩溃的发布版本