繁体   English   中英

是否可以在Windows和Mac OS上都可以用C ++开发桌面应用程序?

[英]Can a desktop app be developed in C++ that would work on both Windows and Mac OS?

我试图节省一些钱,并开发一种在Windows和Mac OS上均可使用的桌面应用程序。 这可能吗? 我们可以用C ++做到吗,然后经过一些修复和调整,仍然可以在两个OS上重用同一应用程序?

是的,这是可能的。 某些代码可能会有所不同,因为操作系统有所不同。

  • 您应该为GUI使用通用库,例如​​Qt: http//qt.nokia.com/
    值得注意的是,Qt为表带来了更多的跨平台功能,因此请熟悉一下它。
  • 会有一些差异需要处理,例如
    • 文件路径(C:在Mac上不存在,\\和/是路径分隔符,等等)
    • 文件结尾不同(在Windows中为CrLf,在Mac中为Lf)
  • 您需要编译为两个不同的目标CPU。 大多数C ++编译器都可以做到这一点。
  • 两种代码都可以使用相同的代码,您只需根据编译器所针对的OS定义要包含(或不包含)区域。

只是Google作为跨操作系统的开发指南,许多人以前就已经做到了。 :)

可能不相关,但仍然值得注意(因为您说了“省钱”),Java和Mono Project (.Net,Qt)都允许您编写跨平台应用程序,但对底层平台的技能有限。 它们是高级语言,通常被认为是节省时间的语言(但这是一个单独的讨论。)

扩展我的评论:

别这样

用可移植的C ++编写您的库代码; 将尽可能多的功能放到库中,确保在学习过程中研究特定于平台的API(可能是Cocoa和.NET),因此库的接口至少适度适合这两种接口。

然后用本地二进制文件包装您的库; 确保您注意应用程序在每个平台上的外观以及它们的感觉。

构建一个看起来像X11应用程序并以Gnome应用程序,KDE应用程序,OS X应用程序和Windows应用程序之间的某种方式进行所有操作的应用程序, 确实会损害用户体验。

严重的

WxWidgets

这个问题被问了很多 ,另请参阅: 这个问题这个 问题以及这个 问题

迟到这里来参加聚会!

我正处于完成跨平台的商业应用程序的最后阶段(目前仅适用于OS / X和Windows,可以考虑稍后使用Linux或iOS)。

我们正在使用一个名为Juce的开源,跨平台C ++开发库,我对此评价不够。 它功能非常强大,代码坚固且高质量,您显然可以从同一代码库为Windows,OS / X,Linux,iOS和Android进行构建(我们仅尝试了前两个,但其他开发人员显然报告了其他平台的成功)。

特别令人高兴的是,首席开发人员在公告板上非常活跃,并且对故障报告反应非常快。

另外,您可以根据GPL许可该库,而且它们还具有价格非常合理的商业许可。

Juce在从事数字音频应用程序的人们中非常受欢迎-实际上,据我所知,许多顶级商业数字音频应用程序可能都使用了该系统-但它功能齐全且速度极快,因此应被认为是任何应用程序的最佳选择跨平台开发应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM