c++ - C++ 应用程序的框架

标签 c++ windows qt mfc frameworks

<分区>

我想创建一个独立 C++ 桌面应用程序,它将是闭源商业并且不需要 用户在机器中拥有所需的DLL
它至少适用于 Windows。如果它可以为所有平台构建,那就太棒了。

这意味着我不希望应用程序使用 .NET Framework,并且所有必需的 DLL 必须与客户端将下载的(唯一)可执行文件一起提供。

我发现并测试了一个虚拟 MFC 应用程序,它似乎可以满足我的所有要求,但我听到的关于 MFC 的每条评论都是它设计糟糕、即将过时、选择不当、难以使用等等.
我看到很多人推荐 Qt,但我读到除非我支付商业许可,否则我不能发布库,或者应用程序必须是开源的。
wxWidgets,据我所读,似乎遵循了 MFC 的同样糟糕的设计。
然而,我读到的许多评论似乎都是几年前的事了。看起来 Qt 已经更改了它的许可证,因此同时可能发生了一些变化。

如果你是我并且有这些要求,你会选择什么框架/库,为什么?

最佳答案

I see lots of people recommend Qt, but I read that I can't ship the library unless I pay a commercial license, or the application has to be open-source.

这是错误的。 Qt 在 LGPL license 下可用,这意味着只要您为最终用户提供一种能够修改/更新 Qt 依赖项的方法,您就绝对可以将您的应用程序关闭源代码。通常这意味着使用共享的 Qt 库并将 DLL 文件与您的应用程序一起部署,以便最终用户可以根据需要替换 DLL 文件。然而,静态链接也是可能的,在这种情况下,您必须为最终用户提供一种重新链接它的方法。这意味着您必须至少将已编译的代码(目标文件)与您的应用程序一起发送。注意:我不是律师,您应该在做出任何决定之前自行彻底调查许可条款。

However, many of the comments I read seem to be for years ago. It seems that Qt has changed its license, so something may have changed in the meanwhile.

据我所知,Qt 在 2009 年 3 月发布的 4.5 版中添加了 LGPL 作为可用许可证之一。所以是的,这些评论已经过时了将近 4 年。

注意:除了我已经提到的具体要点之外,很难更笼统地回答您的问题,原因有二 - (1) 本网站认为要求推荐的帖子是偏离主题的,以及 (2) 你说过,“如果你是我并且有这些要求,你会选择什么框架/库以及为什么”,但你实际上没有说这些要求是什么 are - 显然您希望库能够执行 GUI,但还有什么? C++ 有许多不同的框架和库,它们都做不同的事情。

关于c++ - C++ 应用程序的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21169524/

相关文章:

c++ - 如何将二进制字符串转换成base64编码的数据

c++ - 批处理时如何优化 omp 并行化

c++ - C++ 标准是否要求在主线程中执行静态变量的动态初始化?

windows - 嵌入式操作系统与桌面操作系统的区别

windows - 前置到标准输入

c++ - 如何找到样本信号在主信号中的位置?

python - 如何在另一个应用程序开始运行的同时执行 python 脚本?

c++ - 在 C++ 应用程序中使用 libgrib2c,链接器错误 "Undefined reference to..."

java - 如何在 QtJambi 中获取标准输入、标准输出、标准错误文本流的 QIODevice 实例?

c++ - 使用参数列表中的绝对路径启动 QProcess