2013-02-26 82 views
3

我想知道如何最好地开发一个插件框架,您可以在其中开发C++/MFC和C#插件。在C++/MFC和C#中使用插件扩展C++/MFC应用程序

宿主程序是在本机C++/MFC中开发的现有程序。为了扩展这个程序的功能,我们迄今为止在C++/MFC和C#中开发了单独的程序,它们作为单独的应用程序或Windows服务运行。这些程序现在正在通过文件与主机应用程序进行通信。这显然是一种相当笨拙的方法,因此我们希望将它们纳入一个通用的插件框架中。

每个程序还具有单独的设置管理。因此,我们希望每个插件都可以在主机应用程序中扩展设置窗口,以便可以在一个位置管理所有设置。我们如何以灵活和简单的方式来做到这一点?

回答

1

(...)我们因此希望将它们置于通用插件框架下。 (...)

您可以通过在可以包装在C++/MFC dll项目中的类型库中创建一组COM接口来实现此目的。然后从C++或C#中导入此类型库并创建实现预定义接口的新COM类。这些方法的两个缺点是:1-您的主应用程序需要以某种方式知道类ID来创建COM类的实例。 2-您的插件需要在系统上注册,否则您需要提供manifest files

(...)因此,我们希望每个插件都扩展主机应用程序中的设置窗口,以便可以在一个位置管理所有设置。 (...)

这一个有点棘手,但你可以尝试让每个插件有一个标签控制,然后将相应标签的窗口句柄传递给每个插件在初始化期间,然后用它来放置一个ActiveX控件。在MFC中创建ActiveX控件已有详细记录,并且在此处有一个用于在C#中执行相同操作的示例项目:CSActiveX Sample

相关问题