我有一个旧的MFC代码,我想从我的托管c# WPF . net应用程序调用。为了包装本机代码,我发现我可以选择使用1)P/Invoke 2) c++/CLI或3)COM。
但是我还有另一个担心。我读到,你必须建立MFC扩展DLL每当它要包括类派生自MFC。此外,这个DLL的调用端必须是一个MFC环境,我认为这意味着这个DLL在我的托管代码中是不可用的。
在我的应用程序中,我有从基本MFC类派生的类。我使用文档视图架构,我的Doc、view、MainFrame、App类都是从MFC类派生出来的。这是否意味着我除了构建MFC扩展DLL之外没有其他选择,并且没有办法在我的托管应用程序中使用此DLL。有什么建议来解决这个问题吗?
为什么不将MFC代码封装在MFC ActiveX项目中,并使用互操作性从托管代码应用程序调用它呢?