C ++跨平台文件浏览器实施挑战

我想为Windows和Linux实现跨平台文件浏览器。 最近,我一直在学习使用CMake和编写CMakeList文件,所以我正在考虑做一些有成效的工作。

我的首选编程语言是C ++。 使用CMake为使用g ++的Linux和使用MS Visual Studio的Windows构建。

我想实现的功能: - 基本文件访问:读/写/删除 - 剪切/复制/粘贴文件 - 显示文件信息,如创建日期,修改,大小,位置等。

现在这些功能还是相当基础的,但是我可以添加一些很酷的东西,因为我可以掌握一些东西。

问题:如何解决与多个平台上的文件处理相关的挑战? 例如,在Windows上,我可以使用“GetFileAttributesEx”来获取文件属性,但是这来自对跨平台应用程序不适用的windows.h(不适用于Linux)。 有没有免费的跨平台库可以帮助我开发这个应用程序? 我可以用QT来做这个吗? 或与wxWidgets? 请建议采取最佳方法。

这个想法是学习如何构建和维护跨平台程序。 我想实践“一次编码但为多平台而建立”的理念。 由于这只是一个爱好项目,我愿意接受所有建议。


最好的选择是使用C ++ 17,因为你已经集成了boost :: filesystem。 我认为C ++ 17正在成熟,但它可能不是一个选项。 一般而言,boost是一个不错的选择,但是编程它的方式在性能和编译时间上都非常慢。 Qt在GNU许可证方面存在许可问题,因此不是首选。 GNU有“复制 - 左”许可证,强制您分享您的更改或支付许可费用。 像Apache,BSD和MIT这样的BSD风格的许可证是最好的,尽管GNU可以用来支付开发者的费用,所以你可以为你的许可证费用得到你的钱。 JUCE是另一款经过GNU许可的C ++工具包,值得一试。 您可以通过静态链接到库来避开GNU许可证。

作为创业公司的创始人,我支付任何许可费用是100%不可接受的,因此我有自己的SDK,称为Kabuki Toolkit,它也是最重要的贡献者。 目前,由于我完全重新构建了网络核心,但它已经得到了你所需要的,但它只是需要一些精力油脂。

您必须提前选择Widget Toolkits。 大多数开发人员更喜欢移动应用的本机窗口小部件工具箱,但如果您想要视频游戏风格的界面,本地窗口小部件将无法工作,您需要使用类似MyGUI的内容。 跨平台小工具工具包易于使用,但很难调整细节以获得特定的操作系统外观。

链接地址: http://www.djcxy.com/p/54605.html

上一篇: C++ Cross platform file explorer implementation challenges

下一篇: Run an external program in C# (cross