1. ホーム
  2. c++

新しいC++プロジェクトにATL、MFC、Win32、CLRのどれを使うか、どのように決めればいいのでしょうか?

2023-09-08 11:14:43

質問

私はちょうど私の最初のC++プロジェクトを開始しています。私は Visual Studio 2008 . これは、いくつかのデータベースにアクセスし、WebSphere MQトランザクションを開始する単一フォームのWindowsアプリケーションです。私は基本的に ATL、MFC、Win32 (実際には少しうろ覚えです)、および CLR の違いを理解していますが、どのように選択すべきか途方に暮れています。

これらのうちの 1 つまたは複数が後方互換性のためだけに存在するのでしょうか。

CLR は は悪い考えなのか ?

何か提案があればお願いします。

編集してください。 このプロジェクトにC++を選んだのは、投稿では踏み込まなかった理由ですが、それは完全に技術的なものではありません。そこで と仮定して C++ が唯一の/最良の選択肢であると仮定すると、どちらを選ぶべきでしょうか?

どのように解決するのですか?

お客様のニーズによって異なります。

CLR を使用すると、最も表現力豊かなライブラリのセット (すべての .NET フレームワーク) が提供されますが、実行時に .NET フレームワークのインストールが必要になり、Windows プラットフォームに制限されます (しかし、リストされた 4 つの技術はすべて Windows のみなので、プラットフォームの制限はおそらく最も厄介なものになります)。

しかし、CLR は C++ 言語の C++/CLI 拡張を使用する必要があるため、本質的には、これを使用するためにいくつかの余分な言語機能を学習する必要があります。 そうすることで、.net ライブラリへのアクセス、完全なガベージ コレクションなど、多くの余分なものが提供されます。

ATL と MFC のどちらを選択するかは、やや難しい問題です。 私は、以下のサイトを参照してください。 を選択するための MSDN のページを参照してください。 を参照してください。 ATL/MFCの良いところは、.NETフレームワークを必要とせず、VC/MFCランタイムだけをデプロイ用にインストールすることです。

Win32 を直接使用すると、依存関係が最も少なく、最小の実行可能ファイルを提供しますが、記述する作業が多くなります。 ヘルパー ライブラリの量が最も少ないので、より多くのコードを記述することになります。