質問

トピックのタイトルは実際に私の質問です。そして 2 番目の質問は次のとおりです。この 2 つのどちらをいつ使用すればよいでしょうか?

役に立ちましたか?

解決

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

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

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

他のヒント

「マネージド C++」とは、Visual Studio.NET/VisualStudio.NET 2003 に含まれていた言語を指します。それ以来ずっと 廃止された, 、最新の .net C++ は C++/CLI です。

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

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

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top