2008-09-14 8 views

答えて

1

誰もが同意している単一の図書館がない主な理由は、誰もが必要としているということです。システムライブラリをラップしたいときには、ラッパーを扱うのが巨大で不可能にならないようにしたい場合を除き、ユースケースが何であるかについていくつかの仮定をしなければならないことがよくあります。私はこれが単一の共通のクロスプラットフォームランタイムがない主な理由かもしれないと思います。

GUIの場合、各プラットフォームに独自のUI規則があり、すべてに適合する1つのGUIをコーディングすることはできません。

4

はい、そこには標準ではありませんが、あなたは、クロスプラットフォームの開発を行う際にQtのブーストのようなライブラリは、あなたの人生ははるかに簡単に行うことができます。

1

クロスプラットフォーム開発を自分で簡単に行うためのライブラリはたくさんありますが、すべてのプラットフォーム用の完全なラッパーを作ることは、小さくて高度にカスタマイズされているか、大量で完全にばかげています。

論理的には、オペレーティングシステムのすべての側面の完全なラッパーが仮想ランタイム全体になります。独自のプログラミング言語を作成することもできます。

1

The ADAPTIVE Communication Environment (ACE)は、スレッディング、ソケット、ミューテックスなどの低レベルOS機能のすべてに対してクロスプラットフォームサポートを提供する優れたオブジェクト指向のフレームワークです。狂った数のコンパイラとオペレーティングシステムで動作します。

0

GCCとMS VC++の両方で正常にコンパイルされていることを確認したら、他の場所に移植するのに少しでも手間がかかります。

+0

GCCとMSVCを使用してWindows上に何かを構築すると、それ以外の場所でも動作するという保証はありません:エンディアン? (インテルはリトルエンディアン、その他はビッグエンディアン)整数/ポインタサイズ? (16/32/64はすべて共通です)API? (LinuxとUNIXにはWINAPIがありません...)そして私は他の例を見つけることができると確信しています。私は、IBM z/OS上でMSVCプログラムを構築することは非常に「面白い」ことができると確信しています... –

3

wxwidgetsは、ほとんどのウィンドウマネージャーのネイティブGUIウィジェットの素晴らしい抽象レイヤーです。

1

言語としてのCおよびC++は、標準言語です。コーディング時にルールに厳密に従うならば(つまり、ベンダー固有の拡張機能を使用しないことを意味します)、コードは移植可能でなければならず、どのOS上の最新のコンパイラでもコンパイルできるはずです。

しかし、CやC++にはJavaやC#のようなGUIライブラリがありませんが、移植性のあるGUIアプリケーションを作成するための無料または市販のGUIライブラリがあります。

私は最も人気があると思うQt(商業)とwxWidgets(フォス)です。 wikipediaによれば、もっと多くのことがあります。

また、GUIライブラリではありませんが、boostはC++のSTLを補完するものです。実際、ブースト・ライブラリのいくつかは、次のC++標準で追加される予定です。

関連する問題