チュートリアル : /clr:pure 機能の使用
このチュートリアルでは、純粋 MSIL アプリケーションでリフレクションを使用する方法を示します。 Windows フォーム Scribble ソリューションは、Windows フォーム デザイナーで使用できる必要のある Windows フォーム コントロールを公開するだけでなく、静的データを格納するネイティブ クラスを含めるように拡張されています。 /clr:pure オプションを使用してサンプルをビルドすると、このシナリオで発生する可能性のある問題が解決されます。 詳細については、「方法: /clr:pure に移行する (C++/CLI)」を参照してください。
必須コンポーネント
ScribbleDotNET のサンプル : CLR 機能を使用した Scribble の拡張
このサンプル アプリケーションをビルドまたは実行するには
ScribbleDotNET サンプルをダウンロードします。
Visual Studio 開発環境で、Scribble.sln ソリューション ファイルを開きます。
"CLR-Pure Debug" 構成または "CLR-Pure Release" 構成のいずれかを使用してソリューションをビルドします。
StringDialog.h コンポーネントをデザイン モードで開きます。
表示されるデザイン ウィンドウには、"ScribbleCustomControl" のインスタンスが含まれます。
テクノロジ
.NET 用の新しい C++ 構文
リフレクション
マネージ クラスからネイティブな型にアクセスするための marshal_as<T>。
このサンプルでは、アンマネージ クラスを作成して、マネージ コントロール クラスにラップします。 純粋 MSIL アプリケーションにコンパイルすると、Visual Studio Windows フォーム デザイナーは、結果の EXE ファイルに反映して、Windows フォーム デザイナー用のマネージ コントロールを読み込むことができます。 この動作が行われるのは、現在の構成が、純粋 MSIL アプリケーションの作成を目的とし、アンマネージ モードと混合モードのどちらでもない場合だけです。
コントロール内では、ネイティブ クラスのインスタンスをインスタンス化します。 必要な情報は、ネイティブな文字列です。 marshal_as<T> を使用して、CLR 対応のアプリケーションで使用できるマネージ データ型にデータを変換します。 マーシャリング ライブラリの詳細については、「C++ におけるマーシャリングの概要」を参照してください。
参照
概念
Language Features for Targeting the CLR