2

以前,我们在 MFC (VC6)、VB6 和 C# 应用程序中拥有需要调用用 C++(和 MFC)编写的相同引擎的软件。引擎需要 C++ 来提高速度。当时我们决定使用 COM 作为接口,因为这三个都可以在编组等问题最少的情况下使用它。

我们的 MFC 应用程序现在已弃用,我们最近决定转储 VB6,所以剩下的就是 C#。

我们可以让 COM 引擎保持原样,但最好摆脱 COM 注册等,并拥有一个可使用的托管接口。如果此人的机器出现问题,COM 注册有时会导致支持问题。

是否可以使用现有的非托管 C++/MFC 和 .NET 前端接口来创建 dll?

4

2 回答 2

3

您可以拥有一个在内部使用 MFC 类的 C++/CLI DLL。使用 C++/CLI 创建混合模式 DLL 的一个很好的优势是,您几乎可以在 DLL 中的任何位置使用本机 C++(遵循 C++/CLI 规则)并且“它可以正常工作”。

然而,这里的目标应该是提供可以从 C# 应用程序调用的漂亮、干净、托管的包装器。

话虽如此 - 您很可能希望避免将 MFC 用于任何用户界面元素。虽然可以在 C# 中托管 MFC 内容,反之亦然,但这通常是有问题的 - 最好使用 C++/CLI 将 C++ 引擎(时间关键操作)和遗留代码封装在漂亮、干净的托管包装器中。

于 2010-06-10T22:20:13.973 回答
0

C++/CLI 两者都可以。

于 2010-06-10T22:19:13.790 回答