是否有用于c ++的操作系统API包装程序库?

时间:2009-07-20 16:07:04

标签: c++ cross-platform operating-system

sombebody是否知道用于访问不同操作系统API的C ++库?

我正在考虑一个访问操作系统特定功能的包装器。类似的东西:

  

osAPI.MessageBox(); //在Win32中调用MessageBox(),在Mac中等效   OS Linux等......

由于我认为现在很难为不同的操作系统实现这一点,因此为WinAPI提供一个不错的C ++包装类也是可以的。

7 个答案:

答案 0 :(得分:8)

我认为你正在寻找Trolltech's Qt C ++框架。

它是一个用于GUI的跨平台C ++库,几乎所有其他跨平台的文件。

从最新版本开始,它可以免费用于商业用途。

答案 1 :(得分:3)

wxWidgets强烈推荐使用它的一些朋友。

答案 2 :(得分:1)

MFC在Windows上执行此操作但不是最容易使用的。对于跨平台C ++库,请查看QT.它最为人所知的GUI工具包,但它包含可移植的API,以支持许多系统服务,如线程,数据库连接和I / O.

答案 3 :(得分:1)

Boost提供网络库(Boost.Asio),线程(Boost.Thread),时间,日期,文件系统遍历,共享内存,内存映射文件等。

ACE还有网络,线程,时间,文件系统内容,共享内存等的抽象。

AFAIK,既没有GUI抽象也没有数据库抽象。

其他人提到过Qt,wxWidgets等等。

答案 4 :(得分:1)

检查Daynix DUSIX。它是一个抽象常见系统调用的模块,为Linux和Windows用户空间应用程序和内核模块提供单一界面。

请参阅herehere

答案 5 :(得分:0)

另一个跨平台的C ++库是Mozilla的XPCOM。它是Firefox和许多其他项目使用的跨平台库。

答案 6 :(得分:0)

如果您需要广泛的跨平台功能,诺基亚的QT将是您最好的选择。不利的一点是你需要学习它的信号/插槽机制,你需要使用它自己的qmake工具,它对STL不太友好(你需要学习使用所有QT的容器)。

如果您正在寻找更简单的GUI开发,那么wxWidgets将是一个更好的选择。