Mac OS X と Linux でリッチ クライアント ソフトウェアを開発しています。アプリケーションを Windows に移植したいと考えていますが、Microsoft 製品のユーザーではありません。一般的に Windows にあまり詳しくありません。
私がよく知っていること:
Mac OS X では、Cocoa と Objective C、または Carbon と C/C++ のオプションがあります。Linux では、GTK+ と C/C++ または Qt と C++ のオプションがあります。Mac OS X では Cocoa を、Linux では GTK+ を好みます。Cocoa 用の Interface Builder と GTK+ 用の Glade は私の生活を楽にしてくれます。これらのオペレーティング システムでリッチ クライアントを作成するのは楽しいことです。
私のコア クラス (MVC の「モデル」) は、クロスプラットフォームの C++ で記述されています。ユーザー インターフェイス クラス、または MVC の「ビューとコントローラー」は、それぞれのプラットフォームの「優先」言語と GUI API で記述されています。
C++ は私が最もよく知っている言語です。Boost ライブラリを広く使用しています。特にスマート ポインター、スレッド、および asio ネットワーク ライブラリ。Unicode、ローカリゼーションなどについては、International Components for Unicode (ICU) を使用します。
質問 1: クロスプラットフォーム モデル クラスと互換性のある Windows プラットフォーム用の "優先" 言語と GUI API は何ですか?
質問 2: クロスプラットフォーム モデル クラスにアクセスするにはどうすればよいですか?
たとえば、Mac OS X では、コントローラー クラスを介してモデル クラスにアクセスします。コントローラー クラスは、Objective-C++ で実装されます。Objective-C++ は、C++ と Objective-C を組み合わせたものです。ビュー オブジェクトは、Objective-C のコントローラー オブジェクトと "対話" し、コントローラー オブジェクトは C++ のモデル オブジェクトと "対話" します。
Linux では、すべてのクラスが C++ で実装されています。