c++ - 主框架中的 MFC GUI 和其他也需要 GUI 的 DLL

标签 c++ user-interface dll mfc

我有一个 MFC 应用程序,它的 GUI 作为可执行代码的一部分实现(查看文档架构等) 我的应用程序使用了一些我编写的 DLL。

现在我必须编写另一个 DLL,我知道它也必须有一个 GUI。

我的问题/不确定是我应该将 GUI 实现为主应用程序(主 GUI)的一部分并在它们之间进行连接,还是应该将 GUI 实现为新 DLL 的一部分并在主 GUI 中创建一个入口点? 在这两种情况下,我都清楚我必须有一个接口(interface)类。

如果我将 GUI 作为 DLL 的一部分来实现,我很清楚 GUI 应该保存一个指向接口(interface)类的指针,但是接口(interface)类应该如何与 GUI 通信(例如,通知 GUI 一个长操作是已完成或向 GUI 提供有关操作的中间报告? 1) 使用从界面到 GUI 的指针? 2) 使用带回调的消息循环? 3) 其他选项???

非常感谢

最佳答案

一般来说,MFC + DLL 中的 GUI 东西 = 很多不必要的麻烦。至少我记得十多年前。它与 MFC 微软风格的“支持”有关,因为微软的某个人认为这可能是一个问题,因此 MFC 区分不同类型的 DLL 和 DLL 状态等等,特别是在资源方面。

所以我会说,对于 MFC,如果可行的话,将 GUI 的东西保留在主程序中。

它还与职责分配有关。通过分离职责,您可以获得更易于维护的更简洁的设计。将知识放在履行职责所需的地方。

干杯,

关于c++ - 主框架中的 MFC GUI 和其他也需要 GUI 的 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007786/

相关文章:

wpf - C# WPF 在构建时创建了太多文化文件夹

c++ - 从哪里获取 matlab 库(libmat 和 libmx)

Java AbstractAction 有时不检测转义键 - 奇怪的行为

java - 使用 Java 为迷宫创建 GUI

c# - 从 C# 中调用用 C++ 编写的 DLL 中的自定义类型

c++ - Qt 部署 - QGraphicsView 不显示在其他机器上

c++ - 使用 endpointOverride 属性的 AWS_CORE_API ClientConfiguration 示例

c++ - 返回类型 '?:'(三元条件运算符)

c++ - 线程在 UI 更新之前启动

wpf - 如何在 WPF 中重新设置 TabControl 的样式