差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
dotnet:cpp_cli [2009/01/22 21:50] nakayamadotnet:cpp_cli [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー
行 2: 行 2:
  以前のバージョン(Visual Studio 2002、2003)では、C++マネージ拡張(Managed Extensions for C++、または、Managed C++)と呼ばれていて、C++をCLR(Common Language Runtime)向けにMicrosoftが独自拡張したものであった。\\  以前のバージョン(Visual Studio 2002、2003)では、C++マネージ拡張(Managed Extensions for C++、または、Managed C++)と呼ばれていて、C++をCLR(Common Language Runtime)向けにMicrosoftが独自拡張したものであった。\\
 \\ \\
- Visual Studio 2005からは、C++/CLIとしてC++をCLI(共通言語基盤 - Common Language Infrastructure)向けに拡張したものとなっており、C++/CLIはそれ自身がC++と上位互換のある1つの言語としてECMA標準となりISO標準化の動きもある。\\+ Visual Studio 2005からは、C++/CLIとしてC++をCLI(共通言語基盤 - Common Language Infrastructure)向けに拡張したものとなっており、C++/CLIはそれ自身がC++と上位互換のある1つの言語としてECMA標準([[http://www.ecma-international.org/publications/standards/Ecma-372.htm|Standard ECMA-372]]、翻訳版:[[http://vene.wankuma.com/ecma372/StartingState.aspx|C++/CLI 言語仕様書]])となりISO標準化の動きもある。\\
 \\ \\
- 今では「C++マネージ拡張」という言葉はC++/CLI以前の古いC++拡張のことを意味しており、C++/CLIは.NET FrameworkのCLI(共通言語基盤)上で動作するプログラムを作るための新しいプログラミング言語のことを意味する。\\ + 今では「C++マネージ拡張」という言葉はC++/CLI以前の古いC++拡張のことを意味しており、C++/CLIは.NET Framework上で動作するプログラムを作るための新しいプログラミング言語のことを意味する。また、CLR(共通言語ランタイム)扱うもっともローレベプログラミング言語として位置づけられている。\\
-\\ +
-===== C++マネージ拡張のコード ===== +
-以下のコードドするには、構成プロパティの設定が必要である。\\+
 \\ \\
 +
 +===== 以前の古いコードとの違い =====
 +==== C++マネージ拡張のコード ====
 [C++マネージ拡張] [C++マネージ拡張]
 <code cpp> <code cpp>
行 27: 行 27:
 } }
 </code> </code>
-構成プロパティ設定(Visual C++ 2008 Express Edition)+コードをビルドするには、構成プロパティの設定が必要。\\ 
 +構成プロパティの設定(Visual C++ 2008 Express Edition)
   * [全般]   * [全般]
     * 共通言語ランタイム サポート: **共通言語ランタイム サポート、古い構文 (/clr:oldSyntax)**     * 共通言語ランタイム サポート: **共通言語ランタイム サポート、古い構文 (/clr:oldSyntax)**
行 37: 行 38:
     * エントリ ポイントなし: **はい (/NOENTRY)**     * エントリ ポイントなし: **はい (/NOENTRY)**
  
-===== C++/CLIのコード ====+==== C++/CLIのコード ====
-以下のコードもビルドを行うには、構成プロパティの設定が必要である。\\ +
-\\+
 [C++/CLI] [C++/CLI]
 <code cpp> <code cpp>
行 51: 行 50:
 } }
 </code> </code>
-構成プロパティ設定(Visual C++ 2008 Express Edition)+コードをビルドするには、構成プロパティの設定が必要。\\ 
 +構成プロパティの設定(Visual C++ 2008 Express Edition)
   * [全般]   * [全般]
     * 共通言語ランタイム サポート: **共通言語ランタイム サポート (/clr)**     * 共通言語ランタイム サポート: **共通言語ランタイム サポート (/clr)**
行 61: 行 61:
     * エントリ ポイント: **main**     * エントリ ポイント: **main**
     * エントリ ポイントなし: **いいえ**     * エントリ ポイントなし: **いいえ**
 +
 +===== 3つのクラスとその特徴 =====
 + C++/CLIでは次の3種類のクラスを使い分けることができる。そして、それぞれはメモリ管理などの特徴が異なる。
 +^種類^説明^
 +|ネイティブ クラス\\ (native class)| ネイティブC++のクラス。\\  CRT ヒープにメモリが確保されて格納される。|
 +|refクラス\\ (ref class)| 参照型と呼ばれ System.Object から暗黙的に派生している。\\  Framework クラス ライブラリの殆どの型は参照型である。\\  マネージ ヒープにメモリが確保されて格納される。|
 +|valueクラス\\ (value class)| 値型と呼ばれ System.ValueType から暗黙的に派生している。\\  CTS(共通型システム)の組み込み型であるSystem.Byte、System.Int32、System.Boolean、 System.Char、System.Decimalなどの構造体や列挙体は値型である。列挙体は特殊な値型であり、組み込みの符号付きまたは符号なし整数型をベースとし、System.Enumから派生している。\\  値型はスレッドのスタックメモリに領域が確保されて格納される。|
  • dotnet/cpp_cli.1232628634.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)