13

最近のWindowsソフトウェアがC++でどのように記述されているかに非常に興味があります。私はWindowsソフトウェアに取り組んだ友人に聞いたところ、彼が最後に取り組んだのはMFC、次にWTLであると彼は言った。彼は、MFCはもはや現代的なものではなく、WTLはまだ使用されているが、それ以上のことは知らないと述べた。彼はまた、WTLはそれほど近代的ではなく、それ以前は純粋なWindowsAPIでプログラミングしたと述べました。

WindowsVistaまたはWindows7用のソフトウェアをどのように作成しますか?まだWTLを使用していますか?MFCと純粋なWindowsAPIはどうですか?それとも他の図書館がありますか?

私はそれについてあまり知りませんが、最新のWindowsソフトウェアを書く際にC#または他の.NET言語がC ++に取って代わりましたか?

4

6 に答える 6

13

過去数年間に私が見たものから:

  • WTLはライフライン上にあります。マイクロソフトに見捨てられ、ファンに取り上げられ、非常に熱心なフォロワーが何人かいました。非常にきれいですが、学習曲線は急で、ファンベースは減少しています。Yahooグループはあまり活発ではありません。お勧めできません。

  • MSFTが機能パックをリリースしたとき、MFCはもう1つのリースを取得しました。かなり広範で、MFCっぽくないので、スキニング、ドッキングレイアウト、リボンを強力にサポートします。非常に人気があると思いましたが、多くの開発者がそれに飛びつくのを見たことはありませんでした。MSDNフォーラムの質問はまばらです。既存のMFCコードベースがある場合は、ぜひご覧ください。Win7機能が追加されたVS2010のもう1つのMFC更新は、会社の基本UIソリューションのままです。

  • wxWidgetsはまだ存在しています。個人的な経験はありませんが、主よ、私が聞いた数人の開業医は嵐をかき立てています。本当に苦いものも。

  • Qtはかなり前から存在していましたが、特に昨年はかなりの流れを取り戻しました。それを使う人は誰でもそれが本当に好きです。UIクラスライブラリの範囲を超えて、ユーザーは文字Qで始まる一般的なプログラミングタスクのソリューションを積極的に探しています。これは強力な信頼の投票です。

ただし、Microsoftスタックを使用している場合、これらのクラスライブラリはどれも実際のUI開発ではありません。WPFは部屋の中の象であり、その機能は上記の機能を100マイル上回っています。デバイスとパラダイムの境界を破るその能力は強力であり、デスクトップ、Webブラウザー、電話で実行されるコードを書くのは難しいです。しかし、C++はその一部ではありません。

于 2010-06-25T21:22:27.473 に答える
12

WTL、 Qt、 wxWidgetsはかなり一般的に使用されています。

  • それらはすべて迅速なGUI開発を可能にし、かなり用途が広いです(私の考えでは、3番目のオプションは慣れるのにもっと時間がかかります)。2番目と3番目のオプションはクロスプラットフォームであるため、非常に優れています。

  • 純粋なWinAPIでウィンドウを作成することは非常に古い学校ですが、時には面白いかもしれません。

  • C#ウィンドウを構築するためのアプローチは、以前のオプションと比較してさらに高速ですが、柔軟性が少し劣ります。

于 2010-06-25T20:58:32.020 に答える
9

Qtを見てください-あなたはそれを好きかもしれません。もちろん、移植性のないバージョンを好む場合を除きます。ただし、OS X、Linux、電話でビルドする予定がない場合でも、Qtフレームワークは適切に記述され、十分に文書化されており、正常に機能します。SDKには、優れたIDE(Qt Creator)も含まれています。

于 2010-06-25T20:52:48.443 に答える
8

メインプラットフォームがWindowsの場合、毎回WTL。Google Chromeが使用し、Spotifyが使用します。その最も生産的で柔軟性のあるものは、リソースを大量に消費するものではありません。柔軟とは、純粋なWin32APIコード/その他のC++コードでそれほど問題なく使用できることを意味します。

WTL情報の詳細:WTLリンクのコレクション

于 2010-09-02T22:38:12.353 に答える
2

.NET(C#、VB.NET、...)では、GUIプログラミングの最先端は現時点ではWPFです(WinFormsに取って代わります)。.NETでコンパイルされたコードは、実際にはCILであり、実行時にJITによってネイティブコードにコンパイルされます。これには、64ビットまたは32ビットのターゲットシステムを気にする必要がないという利点があります。

C ++では、Qtはすっきりと設計されており、大量のサービスを提供するため、優れたソリューションのようです。私がQtで嫌いなのは、コンパイルのラウンドトリップです。非常に遅いので、mocコンパイラ、コンパイラ、リンクがあり、実行可能ファイルを取得するにはC#/。NETに比べて時間がかかります。反対に、組み込みシステムでも遭遇する可能性があり、そのような場合に興味深いものになります。

決定する前に、少なくともC#/。NETを見て、それを試してみることをお勧めします。

于 2010-06-25T21:23:13.583 に答える
2

評価した後、純粋なWin32またはWTLが、WRTベースではないモダンなスタイルのWinアプリを作成する唯一の方法であるという状況になりました。

新しい外観がポイントです。MFCは、Win8とWin10で、特にこのすべてのFeaturePackアイキャンディーでひどく見えます。純粋なMFCは優れていますが、太く、ビューモデルの部分はひどいものであり、私はWTLがもっと好きです。しかし、それは文書化されておらず、これはとてもひどくて怖いです。

WxWidgetsは醜いおもちゃです。

QTはもはや代替手段ではありません。彼らはモバイルとアプリフレームワークに焦点を合わせすぎています。また、MacOSXを使用する場合、QTはまったく使用できません(はい、実行されますが、UXについて嘔吐します)。

WinRTは非常に制限があり、機能が不足しているため、使用できません。また、タブレット/電話でWinStoreまたはWindowsを使用している人がいないため、失敗することは間違いありません。だからなぜわざわざ。

ユーザーが低速で太いアプリを高く評価していると思われる場合は、WPFで問題ありません。見た目は良くなりましたが、すべての目玉はUIデザインガイドラインの一部ではなくなり、ウィジェットの機能セットはWin32ネイティブウィジェットよりも少なくなっています。信じられないが本当。そして、パフォーマンスが再び重要になるため(パフォーマンスはエネルギーであり、寿命であるため)、私の意見では非推奨の移植性のないC#を使用するようにロックします。

ハーブサッターや他の高位のMS従業員でさえ、C++が未来であるとあなたに言います。そして次のキラーアプリはC++14で構築されており、Microsoftはそれを知っています。

于 2015-12-13T07:34:34.907 に答える