跨平台 C++ UI 应用程序 [关闭]

Posted

技术标签:

【中文标题】跨平台 C++ UI 应用程序 [关闭]【英文标题】:Cross Platform C++ UI Application [closed] 【发布时间】:2013-12-30 02:22:16 【问题描述】:

实际上,我是一名非常优秀的 Windows 应用程序开发人员,拥有多种语言的经验。我也是很好的 C++ 开发人员。 我有一个问题,从 VS 6.0 到现在的 VS 2013,我一生都在使用 Visual Studio。我从来没有为 Linux 或 Mac 编写过大型 UI 应用程序,一些基本的基于命令行的(主要是)Linux 应用程序(ubuntu ) 和 Mac OSX。

现在我想创建一个应用程序来处理智能卡、USB、加密、文件、互联网。我想让它跨平台。我可以在 5 天内用 C++ 和 MFC 在 VS 2012 中编写整个应用程序(这不是一个大项目,只是一些基本的东西),但我必须让它跨平台,并且所有这些在 UI、功能和所有方面都应该相同.

那么您的跨平台开发人员建议是什么?我必须设计 UI,并且 UI 应该看起来很漂亮,我已经拥有 CodeJock 许可证,但我认为我不能将它用于 Linux,所以我需要一种能够编写跨平台应用程序的方法,该应用程序也将处理特定于操作系统的问题诸如我的应用程序将有一个托盘图标之类的东西将与文件和智能卡 API 一起使用。

如何编写这样的代码,哪个 IDE,哪个 UI 设计器? 谢谢!

【问题讨论】:

试试 Qt 库。这将为您提供独立于平台的环境。它和 MFC 一样愚蠢 :) 但比现代更现代了 20 年 :) 它是如何工作的?例如如何添加“跨平台”系统托盘图标?或者我如何使用智能卡 API 或 USB 接口或互联网 API 跨平台?每个操作系统是否必须具有不同的功能? 但是你是一个很糟糕的谷歌员工,不是吗? 我想知道如何编写跨平台代码和UI,如何添加跨平台系统托盘图标或访问智能卡和USB接口。我必须编写特定于操作系统的函数还是有更好的方法? @V-X Qt “和 MFC 一样愚蠢” 是什么? 【参考方案1】:

您可以看到很多可能性。我有过最棒的体验之一是简单直接媒体层。它没有像 Visual Studio 这样的拖放式图形设计器(这就是您所说的“UI 设计器”吗?)。然而,它的 api 相当强大,并且基于 OpenGL,它适用于所有主要平台。我不能说它与 CodeJock 相比如何,因为我从未使用过 CodeJock。对于 IDE,Code::Blocks 是一个非常强大的跨平台开源 C/C++ IDE。这两个都是免费软件,请参阅各自的许可以获取更多信息。至于您希望在您的程序中加入的特定功能,快速的 Google 搜索会找到大量可供您使用的教程。

代码::块:http://www.codeblocks.org/

简单直接媒体层:http://www.libsdl.org/

希望对你有帮助,

此致,

克里斯

附:如果您还有其他问题,请随时提出。我记得当我开始跨平台编程时,这很困难,但却是我做过的最好的决定之一。

【讨论】:

我想知道如何编写跨平台代码和UI,如何添加跨平台系统托盘图标或访问智能卡和USB接口。我必须编写特定于操作系统的函数还是有更好的方法? 由于跨平台特性,您应该能够使用相同的代码并利用 C++ 的 WOCA 属性。 (Write Once Compile Anywhere) 祝你好运,坚持不懈,一定会成功。 谢谢你,Chris,你能告诉我更多关于 WOCA 的信息吗?我的意思是,CodeBlocks确实有这样的东西或者它与IDE无关,它与某些库有关? WOCA 只是 C++ 的一个“功能”,如果你愿意的话。这意味着 C++ 在本机代码中运行,而不是像 Java 这样的语言在 VM 中运行。 (Java 是 WORA/WORE,一次编写,随处运行/随处运行。)这意味着需要为每个将要运行的平台编译 WOCA 语言。然而,WORA 只需要编译一次,它就可以在任何安装了 VM 的机器上运行。我希望这不会让人感到困惑……en.wikipedia.org/wiki/Write_once,_compile_anywhereen.wikipedia.org/wiki/Write_once,_run_anywhere 我得到了 WOCA 和 WORA,再次感谢您!例如,当我想使用 Windows 智能卡 API 时,如何编写一个可以在 Windows 和 Linux 中运行的函数?

以上是关于跨平台 C++ UI 应用程序 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 视觉中创建 UI [关闭]

推荐内存占用少的快速 C++ UI 库 [关闭]

跨移动平台编程[关闭]

从 C# UI 应用程序关闭阻止 webscokettpp 客户端的客户端连接

我的工具箱中应该都有哪些现代 C++ 库? [关闭]

我可以使用 Visual C++ 开发跨平台桌面应用程序吗?