以前我们在MFC(VC6),VB6和C#应用程序中都有软件需要调用用C ++(和MFC)编写的相同引擎。引擎需要C ++来提高速度。当时我们决定使用COM作为接口,因为所有三个都可以在编组等方面使用最少的问题。
我们的MFC应用程序现已弃用,我们最近决定转储VB6,所以我们剩下的就是C#。
我们可以按原样保留COM引擎,但是远离COM注册等会很好,并且可以使用托管界面。如果此人的机器出现问题,COM注册偶尔会导致支持问题。
是否可以使用现有的非托管C ++ / MFC和.NET前端接口创建一个dll?
答案 0 :(得分:3)
您可以拥有一个在内部使用MFC类的C ++ / CLI DLL。使用C ++ / CLI创建混合模式DLL的一个很好的优点是,您可以在DLL中的任何位置使用本机C ++(遵循C ++ / CLI规则)并且“它只是工作”。
然而,这里的目标应该是提供可以从C#应用程序调用的漂亮,干净,托管的包装器。
话虽如此 - 您很可能希望避免将MFC用于任何用户界面元素。虽然可以在C#中托管MFC内容,反之亦然,但它通常是有问题的 - 您最好只使用C ++ / CLI将C ++引擎(时间关键操作)和遗留代码封装在漂亮,干净的托管包装中。
答案 1 :(得分:0)
C ++ / CLI可以做到这两点。