新しいC++プロジェクトにATL、MFC、Win32、CLRのどれを使うか、どのように決めればいいのでしょうか?
質問
私はちょうど私の最初の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 を直接使用すると、依存関係が最も少なく、最小の実行可能ファイルを提供しますが、記述する作業が多くなります。 ヘルパー ライブラリの量が最も少ないので、より多くのコードを記述することになります。
関連
-
[解決済み】coutはstdのメンバではない
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] MFCとATLの根本的な違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み] MFCとATLの根本的な違いは何ですか?