以前,我们有 MFC (VC6)、VB6 和 C# 应用程序中的软件,需要调用用 C++(和 MFC)编写的相同引擎。该引擎需要 C++ 来提高速度。当时我们决定使用 COM 作为接口,因为所有三个都可以使用它,并且在编组等方面的问题最少。
我们的 MFC 应用程序现已弃用,并且我们最近决定放弃 VB6,因此我们剩下的就是 C#。
我们可以让 COM 引擎保持原样,但最好摆脱 COM 注册等,并拥有一个可以使用的托管接口。如果用户的机器出现问题,COM 注册有时会导致支持问题。
是否可以拥有一个带有现有非托管 C++/MFC 的 dll 和一个 .NET 前端接口?
您可以拥有一个在内部使用 MFC 类的 C++/CLI DLL。使用 C++/CLI 创建混合模式 DLL 的一个很好的优点是,您可以在 DLL 中的任何位置使用本机 C++(遵循 C++/CLI 规则)并且“它可以正常工作”。
然而,这里的目标应该是提供可以从 C# 应用程序调用的漂亮、干净、托管的包装器。
话虽这么说,您很可能希望避免对任何用户界面元素使用 MFC。虽然可以用 C# 托管 MFC 内容,反之亦然,但这通常会出现问题 - 最好使用 C++/CLI 将 C++ 引擎(时间关键操作)和遗留代码封装在漂亮、干净的托管包装器中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)