2009-08-24 11 views
7

Windows用のC++ GUIツールキットに関しては多くの質問がありますが、主にデスクトップOSバージョンに適用されます。Windows CEの開発にMFCからQTまたはWTL(または他のGUIツールキット)を推奨しますか?

Windows CE 5.0 VGAハンドヘルドデバイス用のC++プロジェクトを開始し、どのGUIライブラリを選択するか考えています。私はWindows CEプロジェクトでMFCを使用した経験がありますが、ここで言及されているMFCの弱点があります(古くなった技術、C++プリプロセッサの使い過ぎなど)。デスクトッププロジェクトでは、主にQTとWTLをお勧めします。同時に、MFCには組み込み開発にはまだまだ重要な特性があります。

MFCから新しいGUIツールキットを学ぶためにいくつかのリソースを使い、この場合はどのようなツールキットをお勧めしたいと思いますか?または、MFCはまだWindows CEのエンベデッド開発にとって最も重要ですか?

中小CPUとメモリの負荷、小さなランタイムサイズ、良好なオブジェクト指向設計、優れた最新のC++プラクティス、急な学習曲線、開発スピード、商用表示、便利なデバッグと設計ツール。

(何のプロジェクトで必要とされています。シリアルポート通信、スレッド、プロットや図の描画、ActiveSyncの通信)

+1

あなたが知っていれば、私はMFCに固執します。 QtとWTLは素晴らしいですが、GUIフレームワークはすべて難しいです。 QTでもマクロの使用があります。 – toto

+0

Heh、Qtは、「C++プリプロセッサの過度使用」部門であなたを助けるつもりはありません。 –

答えて

8

Windows CE 5.0のプロジェクトでは、最終段階でQt 4.5を使用していますので、Qt開発のメリットとデメリットをMFCと比較して説明します。
Qtのプラス:

  • ニースOOP設計
  • ネイティブにサポート信号/スロットの抽象化をより迅速に開発することができ、容易
  • Qtは多くの様々な特徴(GUI、ファイルシステム、ネットワーク、スレッドなど)
  • をサポート
  • LGPLライセンスでは無料で商用アプリケーションを開発できます
  • オープンソースコード、例、優れたドキュメントは多くのステッパーを学習します。
  • マルチプラットフォーム・ライブラリー。私たちはVista OSを使用してデバイスやデスクトップでアプリケーションを実行することができました。 4。6バージョンのSymbianのサポートは

のQtマイナスが追加されました:

  • かなり大きなバイナリ(Coreおよび「上」のすべての機能を備えたGUIモジュール用> 10 MBが、しかし、あなたは図書館の建物を調整し、LIBSを作ることができます
  • ビッグメモリとCPU使用率がMFC

と思うと比較)より小さく、MFCの主な利点はそれにその最小限のメモリとCPUフットプリントをQTために比較します。これが問題でない場合は - Qtを選択してください。
P.S. COMポートの通信とプロット描画はQtにネイティブに含まれていませんが、LGPL Qtベースのライブラリが存在します(プロットの例として「Qwt」など)。

+0

"LGPLライセンスは無料で商用アプリケーションを開発できます" - これは正しいですか?私は商業的なアプリケーションのためにあなたは非常に高価なライセンスを購入する必要がありますthibk。 – Narek

+0

いいえ、LGPLバリアントは無料ですが、LGPLの状態として、Qtライブラリコードの変更を共有する必要があります。商用バリアントを選択すると、変更を閉じたままにすることができます。 http://qt.nokia.com/products/licensing – cybevnm

1

あなたはQTを学べば、あなたも他のすべてのコードを記述するために配置されます(ノキア、インテル、グーグルの各社が推進しているLinuxプラットフォーム)を提供している。それはそれ自体で私にとって最も適切な技術になっています!

コードの他の側面については、他のライブラリを見なければならないかもしれませんが、GUI用のQTを使用することは決して悪い選択になることはありません。

+0

ソースコードを共有したくない場合 – ZeroCool

+0

QT商用ライセンスでソースコードを共有する必要はありません。 LGPL QTライセンスでは、Qtソースコードの変更を共有することのみが義務付けられています。 –

+0

Linuxプラットフォームだけでなく、Symbianも。 – e8johan

2

最初の利点は、QTがクロスプラットフォームのlibであることです。第二に、MFCは頭痛です。 MFCで行う最も簡単なことは大きな問題になるかもしれません。可能な限り早くMFCからQTに移行してください。

2

MFCがわかっている場合は、それに固執してください:それはCEでうまく動作します。もちろん、デスクトップMFCに比べていくつかの制限がありますが、一般的に重要ではありません。私が見つけた主な問題は、MFC8 for CE(VS2005)では印刷がサポートされていないことです。

一方、空白のキャンバスがある場合、私はC#またはVBのいずれかに最も快適だと思う.NETに行くことをおすすめします。

+0

メモリ制約がない場合、C#はあなたの最速のTTMです。ほとんどの組み込みアプリケーションでは非常に簡単ですが、コンパクトなフレームワークは大量のメモリを必要とします。また、C# - デスクトップの背景から来た場合、CF espにはいくつかの非常に迷惑な省略があります。 – EndsOfInvention

+0

@EndsOfInvention:.NETデスクトップ環境から来ていることに同意しました。Compact Frameworkは、MFC CEがデスクトップMFCよりもずっと多く、.NET全体に比べてはるかに欠けています。 – AAT

関連する問題