53

2 番目の質問は、これら 2 つのうち何をいつ使用するかということです。

4

6 に答える 6

69

指定されていない場合、C++ はアンマネージ C++ であり、マシン コードにコンパイルされます。アンマネージ C++ では、メモリ割り当てを手動で管理する必要があります。

Managed C++ は、Microsoft によって発明された言語であり、.NET Framework によって実行されるバイトコードにコンパイルされます。C++ とほぼ同じ構文を使用しますが (名前の由来)、C# または VB.NET と同じ方法でコンパイルされます。基本的に構文のみが変更されます。たとえば、'->' を使用して (C# の '.' の代わりに) オブジェクトのメンバーを指すようにしたり、名前空間に '::' を使用したりします。

マネージド C++ は、従来の C++ から .NET Framework への移行を容易にするために作成されました。新しいプロジェクトを開始するために使用することは意図されていません (C# が推奨されます)。

于 2008-09-22T11:05:01.593 に答える
14

「マネージ C++」とは、Visual Studio.NET/Visual Studio.NET 2003 に含まれていた言語を指します。それ以降は非推奨となり、最新の .NET C++ は C++/CLI です。

于 2008-09-22T11:30:46.993 に答える
3

ネイティブ C++ を 2 つの異なる方法でコーディングできます。1 つ目は、ユーザーとプラットフォーム(ハードウェア)の間のオペレーティング システムのみを使用して、マシン コードに直接コンパイルすることです。2 番目のネイティブ コーディングは、MFC (Microsoft Foundation Classes) で行われます。これは、MFC の使用を除いて、最初の例と同じです。

Managed C++ は、CLR (共通言語ランタイム) を使用します。CLR と .NET Framework クラス ライブラリが .NET Framework を構成します。このマネージド C++/CLI 標準は、 CIL (Microsoft Intermediate Language)と共に .NET フレームワークを使用します。この標準は、プログラムがジャスト イン タイム コンパイラを使用して実行されている場合にのみ、マシン コードにマッピングすることによって機能します。コードが異なるハードウェア プラットフォームで実行される場合、マネージ コードを使用する方がはるかに簡単です。すべてのことと同様に、ネイティブ コードはより高速に実行されるため、利便性のためにわずかな代償を払う必要があります。

于 2008-09-22T20:01:25.487 に答える
2

この質問を見るべきだと思います。

于 2008-09-22T11:04:45.510 に答える
1

マネージド コードからネイティブ C++ クラス ライブラリを使用する場合は、マネージド C++ を使用します。この場合、アンマネージ クラスをマネージ C++ クラスでラップし、それらを任意の CLR 言語で使用します。

于 2008-09-22T14:51:15.390 に答える
0

Managed C++ とは、メモリの割り当て、管理、ガベージ コレクションが仮想マシンによって処理されることを意味します。一方、「通常の」C++ では、メモリの割り当てと割り当て解除を行う必要があります。

于 2008-09-22T10:59:45.740 に答える