2011-10-27 61 views
0

我有一个插件DLL,我已经写在C++ MFC加载的第三方应用程序大概是用C++编写的MFC。我的DLL有一个GUI界面,并基于CWinApp;我想不知怎的,我的插件的消息泵与主应用程序的消息泵协作(?)我相信我的DLL可能通过LoadLibrary加载,并通过调用DLL中的导出函数启动。我的插件调用第三方应用程序通过我的DLL链接的静态库公开的函数和类。用C#重写MFC DLL?

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

回答

2

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