2009-07-20 59 views
2

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

我正在考虑访问操作系统特定功能的包装。例如:

osAPI.MessageBox(); //调用Win32中的MessageBox(),相当于在Mac OS 的Linux等等

因为我认为这是很难实现这一针对不同的操作系统,现在它也将是确定有一个很好的C++包装类为WinAPI。

+0

你描述的功能不是OS层(处理设备驱动程序等)。这些是窗口(或显示)层,它是Core OS上方的一层。 – 2009-07-20 18:23:23

+0

我只选择了MessageBox,因为它首先出现在我的脑海里。总的来说,我不认为(仅)关于GUI功能,我想到的是典型的OS API函数,如流程管理,网络资料等。(非第一行的GUI东西) – Inno 2009-07-20 19:12:31

回答

1

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

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

AFAIK,既没有GUI抽象或DB抽象。

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

8

我想你在寻找Trolltech's Qt C++框架。

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

而且截至最新版本,它可以免费使用商业用途。

+0

QT是否也处理非GUI GUI的东西,例如获取正在运行的进程的列表? – Inno 2009-07-20 16:44:19

1

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

0

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

0

如果您需要广泛的跨平台功能,诺基亚的QT将是您最好的选择。但缺点是你需要学习它的Signal/Slot机制,你需要使用它自己的qmake工具,并且它不太适合STL(你需要学习使用所有QT的容器)。

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

1

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

请参阅herehere

相关问题