用C#重写MFC DLL?

时间:2011-10-27 16:27:43

标签: c# c++ dll mfc interop

我有一个插件DLL,我用C ++ MFC编写的第三方应用程序加载,可能是用CFC用MFC编写的。我的DLL有一个GUI界面,基于CWinApp;我想我的插件的消息泵以某种方式与主应用程序的消息泵合作(?)我相信我的DLL可能是通过LoadLibrary加载并通过调用我的DLL中的导出函数启动的。我的插件调用第三方应用程序通过我的DLL链接的静态库公开的函数和类。

这很好但与使用WinForms和C#相比,使用MFC / C ++令人沮丧。所以我想知道是否有可能让我的DLL不使用MFC而是使用winforms和C#?这有什么办法可行吗?我在想,我想用C#编写的DLL导出一个从第三方应用程序调用的函数然后启动winforms应用程序?此外,我的DLL需要链接到静态C ++库,以便与第三方应用程序互操作。是否可以从C#访问?或者,如果不是直接可能的话,我可以写一些包装器吗?

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用C ++ dll包装C#dll。只需在托管C ++中创建一个shell,它接受需要从主程序处理的任何调用。然后它可以调用C#dll并让它处理所有工作。