Com Interop DLL的多个版本

时间:2013-01-10 13:45:05

标签: c++ .net com-interop

我有一个使用Com Interop构建的.NET 2.0 DLL,因此我可以从VS 6中开发的两个不同的C ++ / MFC应用程序访问它。

目前,一个C ++应用程序(App1)使用一种形式的.NET DLL(Lib1),另一种(App2)使用另一种形式(Lib2)。我想将这些单独的库组合成一个代码库(因为它们应该是),但我仍然需要它们是两个独立的库。但是,如果它们具有相同的名称,我不知道如何注册这两个单独的库。可以这样做吗?是否有替代我目前正在做的事情?

App1通过调用以下方式访问其库版本:
      hr = :: CLSIDFromProgID(L“Lib1.Devices”,& clsid); App2通过调用以下方式访问其库版本:
      hr = :: CLSIDFromProgID(L“Lib2.Devices”,& clsid);

1 个答案:

答案 0 :(得分:0)

你可以在这做两件事

  • 您可以为两种不同的表单添加两种不同的方法,这样您就可以拥有一个单独的COM对象,它暴露出两种可供两个不同应用程序使用的方法

  • 你可以做的第二件事是,为你的com dlls添加两个不同的GUID,这样,你可以拥有同名的dll,还有两个不同的代码。虽然不推荐,但这是dll hell的根本原因。

请参阅此解决方案 GUIDs in DLLs (.Net)