2009-07-20 4 views
2

誰かが別のオペレーティングシステムAPIにアクセスするためのC++ライブラリを知っていますか?C++用のオペレーティングシステムAPIラッパーライブラリはありますか?

OS固有の機能にアクセスするためのラッパーについて考えています。何かのように:

osAPI.MessageBox();私は今、素敵なC++ラッパークラスを持つこともOKだろうことは違うのOSのためにこれを実現するのは難しいと思うので//は...マック OSのLinuxなどで同等のWin32に

をメッセージボックス()を呼び出しますWinAPIのために。

+0

あなたが記述する機能は、OSの層(デバイスドライバなどを扱う)ではありません。これらは、コアOSの上のレイヤーであるウィンドウ(または表示)レイヤーです。 –

+0

私はMessageBoxを選んだのは、それが私の頭の中で最初に来たからです。一般的に、GUI機能については(私は)考えていませんが、プロセス管理やネットワークのような典型的なOS APIの機能については考えています。(最初の行ではGUI以外のもの) – Inno

答えて

1

ブーストは、ネットワーキングのためのライブラリ(Boost.Asio)、スレッド(Boost.Thread)を提供しています、時間、日付は、ファイルシステムのトラバースは、共有メモリ、メモリには、マップファイルなど

ACEはまた、ネットワーキングのための抽象化を持ち、スレッド、時間、ファイルシステムのもの、共有メモリなど。

AFAIKでは、いずれもGUI抽象化またはDB抽象化を持っていません。

他にも、Qt、wxWidgetsなどが挙げられています。

8

私はあなたがTrolltech's Qt C++フレームワークを探していると思います。

これはGUI用のクロスプラットフォームのC++ライブラリであり、他のプラットフォームとのクロスプラットフォームです。

最新バージョンでは、商用での使用は無料です。

+0

QTは、実行中のプロセスのリストを取得するなどのGUI以外のOS APIも処理しますか? – Inno

+0

明らかにプロセスリストを取得することはQTの対象ではありません。 (http://lists.trolltech.com/qt-interest/2006-10/msg01222.html) もっと新しいリリースのソリューションを追加したのかもしれませんか?私はwxWidgetsでもそれを得る方法を見つけることができません。 – Kieveli

+0

いつでも#ifdef _WIN32に戻ることができます。必要ならば –

1

MFC sort ofはWindowsでこれを実行しますが、使用するのが最も簡単です。クロスプラットフォームのC++ライブラリの場合、QT.をご覧ください。これはGUIツールキットとして最もよく知られていますが、スレッド、データベース接続、I/Oなどの多くのシステムサービスをサポートする移植可能なAPIが含まれています。

3

wxWidgetsこれを使用した数人の友人から強くお勧めします。

0

さらに別のクロスプラットフォームのC++ライブラリは、MozillaのXPCOMです。これは、Firefoxや他の多くのプロジェクトで使用されているクロスプラットフォームのライブラリです。

0

幅広いクロスプラットフォーム機能が必要な場合は、ノキアのQTが最適です。ただし、シグナル/スロットメカニズムを学ぶ必要があること、独自のqmakeツールを使用する必要があること、そしてSTL(それはQTのすべてのコンテナを使用することを学ぶ必要がある)とあまり親しみがないことが欠点です。

GUI開発のための簡単な方法をお探しの場合は、wxWidgetsを選択する方がはるかに優れています。

+0

STLでうまく動作します。すべてのQtコンテナにはSTLスタイルのイテレータが用意されています。さらに、すべてのQtコンテナには、STLコンテナとの間での変換/変換を行うメソッドがあります。 –

1

Daynix DUSIXを確認してください。これは、一般的なシステムコールを抽象化し、LinuxおよびWindowsのユーザースペースアプリケーションとカーネルモジュール用の単一のインターフェイスを提供するモジュールです。

hereおよびhereを参照してください。

関連する問題