次の方法で共有


チュートリアル : /clr:pure 機能の使用

更新 : 2007 年 11 月

このチュートリアルでは、純粋 MSIL アプリケーションでリフレクションを使用する方法を示します。Windows フォーム Scribble ソリューションは、Windows フォーム デザイナで使用できる必要のある Windows フォーム コントロールを公開するだけでなく、静的データを格納するネイティブ クラスを含めるように拡張されています。/clr:pure オプションを使用してサンプルをビルドすると、このシナリオで発生する可能性のある問題が解決されます。詳細については、「方法 : /clr:pure に移行する」を参照してください。

前提条件

ScribbleDotNET のサンプル : CLR 機能を使用した Scribble の拡張

このサンプル アプリケーションをビルドまたは実行するには

  1. ScribbleDotNET サンプルをダウンロードします。

  2. Visual Studio 開発環境で、Scribble.sln ソリューション ファイルを開きます。

  3. "CLR-Pure Debug" 構成または "CLR-Pure Release" 構成のいずれかを使用してソリューションをビルドします。

  4. StringDialog.h コンポーネントをデザイン モードで開きます。

  5. 表示されるデザイン ウィンドウには、"ScribbleCustomControl" のインスタンスが含まれます。

テクノロジ

  • .NET 用の新しい C++ 構文

  • リフレクション

  • マネージ クラスからネイティブな型にアクセスするための marshal_as<T>。

このサンプルでは、アンマネージ クラスを作成して、マネージ コントロール クラスにラップします。純粋 MSIL アプリケーションにコンパイルすると、Visual Studio Windows フォーム デザイナは、結果の EXE ファイルに反映して、Windows フォーム デザイナ用のマネージ コントロールを読み込むことができます。この動作が行われるのは、現在の構成が、純粋 MSIL アプリケーションの作成を目的とし、アンマネージ モードと混合モードのどちらでもない場合だけです。

コントロール内では、ネイティブ クラスのインスタンスをインスタンス化します。必要な情報は、ネイティブな文字列です。marshal_as<T> を使用して、CLR 対応のアプリケーションで使用できるマネージ データ型にデータを変換します。マーシャリング ライブラリの詳細については、「C++ におけるマーシャリングの概要」を参照してください。

参照

概念

New C++ Language Features

その他の技術情報

Visual C++ 2008 のチュートリアル