0

我有一个使用 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);

4

1 回答 1

0

你可以在这里做两件事

  • 您可以为两种不同的表单放置两种不同的方法,这样您就可以拥有一个单独的 COM 对象,该对象公开两种可供两个不同应用程序使用的方法

  • 您可以做的第二件事是,为您的 com dll 放置两个不同的 GUID,这样,您可以拥有同名的 dll 仍然有两个不同的代码。虽然不推荐,但它是 dll 地狱的根本原因。

请参阅此处以获取 DLL (.Net) 中的此解决方案 GUID

于 2013-01-10T13:50:59.977 回答