2009-07-20 107 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

相關問題