需要考虑的事项: - 使用方便 - 快 - 尽可能使用底层操作系统(如用于UI的wxWidgets)
我倾向于使用wxWidgets for UI和Boost进行网络化 - 他们如何与其他人比较?
答案 0 :(得分:12)
我听到了关于GUI的qt的好消息
Qt是一个跨平台的应用程序 UI框架。使用Qt,你可以写 支持Web的应用程序一次 在桌面,移动和桌面上部署它们 没有嵌入式操作系统 重写源代码
答案 1 :(得分:3)
我已经很好地了解了前端的wxWidgets以及网络端的boost :: asio。
wxWidgets确实内置了网络类,但是你很快就遇到了它们,并且有一两个很大的局限性。如果你想留在wx世界,有一个名为wxCurl的软件包,它是一个很好的软件包(我在早期使用它),它将libCurl与一些wxWidgets idomatic C ++包装在一起。
在我之前的一个项目(一个网络/文件传输繁重项目)中,我们最终使用了boost :: asio,它的优势在于没有那么难的API,更容易看似设置libCRUL (虽然可能已经好转,现在已经好几年了),并且为我们提供了一个非常通用的网络核心(boost可以在任何地方编译,甚至命令行应用程序)
答案 2 :(得分:2)
对于GUI,我强烈建议使用Qt。它是一个非常强大的GUI框架,需要编写很少的代码行。它具有非常好用且易于使用的信号和插槽模型。
wxWidgets
恕我直言,模仿MFC后模型非常糟糕。
网络:我建议去Boost.Asio
非常强大和好看。但是,如果你
想要将网络集成到GUI主循环中,您可以尝试使用Qt类,但是我没有使用它们的经验。
答案 3 :(得分:1)
我历史上曾使用XVT,已被数千家公司商业化使用过。
答案 4 :(得分:0)
即使不是他们的第一个目标,Qt或wxWidgets也可以进行联网。
对于更多以网络为中心的图书馆,除了boost::asio之外,您还可以查看ACE(适应性沟通) 环境)或POCO
这些库之间的比较有already been discussed on stackoverflow。
答案 5 :(得分:0)
boost :: asio似乎编写得非常好,并且有一个非常干净的API - 我仍在尝试了解它对无共享multithreaded TCP / IP的好坏。
您的其他选择可能是Poco或ACE。 Poco的套接字抽象非常幼稚 - 即,它只允许Poco的做事方式。我从来没有听说过有关ACE的任何好消息。
编辑嗯,我正在重新检查ACE,现在对我来说更有意义(在编写了一些网络应用程序之后) - 与ASIO相比,它可能适合我的需求。但是,这对你来说很可能有些过分。如果我的同伴发现了这一点,我会被回避直到时间结束。
答案 6 :(得分:0)
我们使用带有boost :: asio的wxWidgets取得了很好的成功,这两者都推荐用于桌面服务器开发。
答案 7 :(得分:0)
对于GUI,我可以推荐QT
适用于Networking ACE(自适应通信环境)或boost :: asio。