dotnet:cpp_cli

差分

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

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
dotnet:cpp_cli [2009/02/05 12:37] ともやんdotnet:cpp_cli [2019/05/18 02:23] (現在) – 外部編集 非ログインユーザー
行 4: 行 4:
  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標準化の動きもある。\\  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++マネージ拡張のコード ====
行 61: 行 62:
     * エントリ ポイントなし: **いいえ**     * エントリ ポイントなし: **いいえ**
  
 +===== 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.1233805063.txt.gz
  • 最終更新: 2019/05/18 02:23
  • (外部編集)