【发布时间】:2011-10-24 12:15:23
【问题描述】:
我需要为 MFC 应用程序编写一个插件:
- 插件部署为 dll。
- 在运行时,MFC 应用程序将调用插件并且插件显示自定义对话框。
- dll需要动态加载,如果dll更新,MFC应用程序不应重新编译。
我主要在 .net 中编写代码,在玩过 MFC 之后,一切对我来说似乎都太奇怪了(没有事件/代表等)。我可以编写一个 MFC dll,但如果我可以在 .net 中做到这一点,那么我愿意尝试一下。一个可能的解决方案是我可以编写一个 C# dll 并将其公开为 COM。由于我对 COM 一无所知,所以我的问题是:
- .net 框架需要安装在客户的机器上吗?
- 能否从 MFC 应用程序动态加载 COM?
- 我读了一些关于向 COM 注册程序集的内容,这是否发生在客户端机器上? (如果是,那么安装程序可能需要更新)
- 在 MFC 应用程序中使用 COM 是否容易(这需要 MFC 开发人员修改他们的代码)
或者,如果在 .net、COM 和 MFC 之间建立连接需要付出太多努力,你会建议我在 MFC 中编写代码吗?谢谢。
更新:
我决定使用 C++/CLI 作为 MFC 和 .Net 之间的桥梁。可以从 MFC 应用程序调用混合的 C++/CLI dll,并且 dll 可以利用 .net 框架。因此,我可以在另一个 dll 中使用 C# 编写 UI,并且该 dll 可以由 C++/CLI 调用。
参考文献:
【问题讨论】: