C++ Com互操作DLL的多个版本
我有一个使用Com互操作构建的.NET2.0DLL,因此我可以从VS6中开发的两个不同的C++/MFC应用程序中访问它C++ Com互操作DLL的多个版本,c++,.net,com-interop,C++,.net,Com Interop,我有一个使用Com互操作构建的.NET2.0DLL,因此我可以从VS6中开发的两个不同的C++/MFC应用程序中访问它 目前,一个C++应用程序(APP1)使用.NETDLL(LIb1)的一种形式,而另一种(APP2)使用另一种形式(LIb2)。我希望将这些独立的库组合成一个代码库(它们应该是这样的),但我仍然需要它们是两个独立的库。但是,如果这两个库的名称相同,我不知道如何注册它们。这能做到吗?除了我目前正在做的事情,还有其他选择吗 App1通过调用访问其版本的库: hr=::CLSIDFro
目前,一个C++应用程序(APP1)使用.NETDLL(LIb1)的一种形式,而另一种(APP2)使用另一种形式(LIb2)。我希望将这些独立的库组合成一个代码库(它们应该是这样的),但我仍然需要它们是两个独立的库。但是,如果这两个库的名称相同,我不知道如何注册它们。这能做到吗?除了我目前正在做的事情,还有其他选择吗
App1通过调用访问其版本的库:hr=::CLSIDFromProgID(L“Lib1.Devices”、&clsid); App2通过调用来访问其版本的库:
hr=::CLSIDFromProgID(L“Lib2.Devices”、&clsid) 在这里你可以做两件事
- 您可以为两种不同的形式放置两种不同的方法,这样您就可以拥有一个单一的COM对象,该对象公开两种可由两个不同应用程序使用的方法
- 您可以做的第二件事是,为您的com dll放置两个不同的GUID,这样,您就可以拥有具有相同名称的dll以及两个不同的代码。但不建议这样做,这是dll地狱的根本原因
使用类的[ProgId]属性更改名称。