Share via


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

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

必須コンポーネント

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++ におけるマーシャリングの概要」を参照してください。

参照

概念

Language Features for Targeting the CLR

その他の技術情報

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