<分区>
要求我们推荐或查找工具、库或最喜欢的场外资源 的问题对于 Stack Overflow 来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describe the problem 以及迄今为止为解决该问题所做的工作。
我想创建一个独立 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++ 有许多不同的框架和库,它们都做不同的事情。