相互運用性 (Visual C++ での操作方法)
更新 : 2007 年 11 月
このページは、Visual C++ による相互運用機能の関連タスクについて説明するページにリンクしています。ヘルプに記載されている一般的なタスクのその他のカテゴリについては、「Visual C++ での操作方法」を参照してください。
CLR/ネイティブの相互運用性
混合、純粋、および確認可能の各機能の比較
3 つの /clr コンパイル モードの機能を比較します。方法 : /clr に移行する
/clr を使用してネイティブ コードをコンパイルし、プロジェクトをマネージに変換する場合に発生する問題について説明します。方法 : /clr を指定して MFC および ATL コードをコンパイルする
共通言語ランタイムを対象とする既存の MFC プログラムと ATL プログラムをコンパイルする方法を説明します。混在 (ネイティブおよびマネージ) アセンブリ
開発者が、マネージ機能とアンマネージ機能の組み合わせを使用してアプリケーションを記述する方法を説明します。Interop (C++) のパフォーマンスに関する考慮事項
実行時のパフォーマンスに対するマネージ/アンマネージの相互運用の遷移の影響を軽減するためのガイドラインを提供します。How to: Declare public and private on Native Classes
マネージ型からネイティブ型を参照する方法を示します。How to: Pass a Delegate^ to a Native Function Expecting a Function Pointer
マネージ コンポーネントから、関数ポインタ パラメータを指定してネイティブ関数を呼び出し、ネイティブ関数がマネージ コンポーネントのデリゲートのメンバ関数を呼びだすようにする方法を示します。方法 : System::String の文字にアクセスする
wchar_t* 文字列を受け取るアンマネージ関数を効率よく呼び出すために String オブジェクトの文字にアクセスする方法を示します。方法: ネイティブ DLL をグローバル アセンブリ キャッシュに追加する
ネイティブ DLL (COM 以外) をグローバル アセンブリ キャッシュに置く方法を説明します。方法 : System::Guid と _GUID の間で変換を行う
Guid と _GUID の間での変換方法を示します。方法 : char * 文字列を System::Byte 配列に変換する
char * 文字列を Byte 配列に変換する最も効率的な方法は、Marshal クラスの使用であることを示します。方法 : 標準文字列を System::String に変換する
標準 C++ ライブラリ文字列 (<string>) を String に変換する方法を示します。方法 : System::String を標準文字列に変換する
String を標準ライブラリ文字列 (<string>) に変換する方法を示します。方法 : System::String を wchar_t* または char* に変換する
Vcclr.h の PtrToStringChars を使用して、String をネイティブな wchar_t * または char * に変換する方法を説明します。方法 : ネイティブ型のハンドルを宣言する
ネイティブ スタックに gcroot オブジェクトを作成する方法を示します。方法 : イメージがネイティブであるか CLR であるかを確認する
プログラムを使用して、共通言語ランタイム用にイメージをビルドしたかどうかを確認する方法を示します。方法 : ネイティブ関数内にオブジェクト参照を保持する
GCHandle をラップする gcroot.h を使用して、アンマネージ メモリ内に CLR オブジェクト参照を保持する方法を説明します。方法 : 値型への参照をネイティブ型で保持する
ボックス化された型の gcroot を使用して、値型への参照をネイティブ型で保持する方法を説明します。方法 : バイト配列へのポインタを取得する
最初の要素のアドレスを取得し、そのアドレスをポインタに割り当てることで、Byte 配列内の配列ブロックへのポインタを取得する方法を説明します。方法 : /clr コンパイルでネイティブ型を使用する
/clr コンパイルでネイティブ型を定義し、アセンブリ内からそのネイティブ型を使用する方法を示します。方法 : ネイティブ クラスを C# で使用できるようにラップする
ネイティブ C++ クラスをラップして、C# またはその他の .NET 言語で作成されたコードで利用できるようにする方法を示します。
C++ Interop
方法 : C++ Interop を使用して ANSI 文字列をマーシャリングする
C++ の相互運用性を使用して、マネージ コードとネイティブ コード間で ANSI 文字列をマーシャリングする方法を示します。方法 : C++ Interop を使用して Unicode 文字列をマーシャリングする
C++ の相互運用性を使用して、マネージ コードとネイティブ コード間で Unicode 文字列をマーシャリングする方法を示します。方法 : C++ Interop を使用して COM 文字列をマーシャリングする
C++ の相互運用性を使用して、マネージ コードとネイティブ コード間で COM 文字列をマーシャリングする方法を示します。方法 : C++ Interop を使用して構造体をマーシャリングする
C++ の相互運用性を使用して、マネージ コードとネイティブ コード間で struct をマーシャリングする方法を示します。方法 : C++ Interop を使用して配列をマーシャリングする
C++ の相互運用性を使用して、マネージ コードとネイティブ コード間で配列をマーシャリングする方法を示します。方法 : C++ Interop を使用してコールバックおよびデリゲートをマーシャリングする
C++ の相互運用性を使用して、マネージ コードとネイティブ コード間でコールバックとデリゲートをマーシャリングする方法を示します。方法 : C++ Interop を使用して埋め込みポインタをマーシャリングする
C++ の相互運用性を使用して、マネージ コードとネイティブ コード間で埋め込みポインタをマーシャリングする方法を示します。方法 : out パラメータを指定する
関数パラメータが out パラメータであることを指定する方法、および C# プログラムからその関数を呼び出す方法を示します。
COM 相互運用
.NET からのネイティブな COM サーバーの使用
.NET アプリケーションから既存の COM コンポーネントを使用するために使用できる一連のオプションおよびそれぞれの方法の長所と短所について説明します。方法 : TLBIMP でネイティブ COM サーバーを使用する
タイプ ライブラリ インポータ (Tlbimp.exe) ツールを使用して、マネージ コードから COM オブジェクトを使用する方法について説明します。方法 : CRCW でネイティブ COM サーバーを使用する
カスタム ランタイム呼び出し可能ラッパーを使用して、マネージ コードから COM オブジェクトを使用する方法を示します。COM への .NET Framework コンポーネントの公開
COM クライアントと相互運用できるマネージ コードを作成するためのヒントを示します。
プラットフォーム呼び出し (P/Invoke)
方法 : PInvoke を使用して文字列をマーシャリングする
プラットフォーム呼び出し (P/Invoke) 機能を使用して、C スタイル文字列を受け入れるネイティブ関数を CLR 文字列型 System.String を使用して呼び出す方法を説明します。方法 : PInvoke を使用してマネージ コードからネイティブ DLL を呼び出す
プラットフォーム呼び出し (P/Invoke) 機能を使用して、マネージ コードからアンマネージ DLL で実装される関数を呼び出す方法を示します。方法 : PInvoke を使用して構造体をマーシャリングする
プラットフォーム呼び出し (P/Invoke) 機能を使用して、C スタイルの struct を受け入れるネイティブ関数をマネージ コードから呼び出す方法を説明します。方法 : PInvoke を使用して配列をマーシャリングする
プラットフォーム呼び出し (P/Invoke) 機能を使用して、C スタイルの配列を受け入れるネイティブ関数をマネージ コードから呼び出す方法を説明します。方法 : PInvoke を使用して関数ポインタをマーシャリングする
アンマネージ関数と相互運用する場合、プラットフォーム呼び出し (P/Invoke) 機能を使用して、関数ポインタの代わりにマネージ デリゲートを使用する方法を説明します。方法 : PInvoke を使用して埋め込みポインタをマーシャリングする
プラットフォーム呼び出し (P/Invoke) 機能を使用して、埋め込みポインタをマーシャリングする方法を説明します。方法 : ネイティブ関数の参照クラスを変更する
PInvoke サービスを使用して、CLR 配列を持つ参照クラスをネイティブ関数に渡し、そのクラスを変更する方法を示します。方法 : 正規表現を使用して文字列を解析する
最初の要素のアドレスを取得し、そのアドレスをポインタに割り当てることで、Byte 配列内の配列ブロックへのポインタを取得する方法を説明します。
C++ サポート ライブラリ
- 方法 : マーシャリング ライブラリを拡張する
データ型間の変換をより充実させるためにマーシャリング ライブラリを拡張する方法について説明します。
MFC での Windows フォームの使用
MFC での Windows フォーム ユーザー コントロールの使用
MFC Windows フォームのサポート クラスを使用して、MFC アプリケーション内の Windows フォーム コントロールを MFC のダイアログ ボックスまたはビュー内の ActiveX コントロールとしてホストする方法を説明します。Windows フォームと MFC のプログラミング上の違い
Windows フォームと MFC のプログラミングの違いに関する背景情報を提供します。MFC ダイアログ ボックスとしての Windows フォーム ユーザー コントロールのホスト
CWinFormsDialog クラスを使用して、Windows フォーム コントロールを MFC ダイアログ ボックスとしてホストする方法を説明します。方法 : ユーザー コントロールを作成し、MDI ビューをホストする
.NET Frameworks ユーザー コントロールを作成し、そのコントロールをコントロール クラス ライブラリ (つまり、Windows Control Library プロジェクト) に作成してからプロジェクトをアセンブリにコンパイルする方法を示します。方法 : Windows フォーム コントロールにコマンド ルーティングを追加する
CWinFormsView を使用してコマンドをルーティングし、MFC にコマンドを処理するためにユーザー コントロールのコマンド UI メッセージを更新する方法を示します。方法 : Windows フォーム コントロールのプロパティとメソッドを呼び出す
ユーザー コントロール型のメンバを追加し、IView::OnInitialUpdate でそれを初期化することを推奨する理由を説明します。MFC ビューとしての Windows フォーム ユーザー コントロールのホスト
Windows フォームのユーザー コントロールを MFC ビューとしてホストする方法を説明します。方法 : ダイアログ ボックスにユーザー コントロールおよびホストを作成する
ユーザー コントロールをダイアログベースの新しい MFC プロジェクトに追加する方法を説明します。方法 : Windows フォームで DDX/DDV データ バインディングを実行する
ネイティブの C++ 文字列を .NET ユーザー コントロールにバインドする方法を示します。方法 : ネイティブ C++ クラスから Windows フォーム イベントをシンクする
ネイティブの C++ クラスで、Windows フォーム コントロールまたは MFC マクロ マップ形式の他のフォームから発生したマネージ イベントからコールバックを受け取る方法を示します。ビューやダイアログでイベントをシンクすることは、コントロールのイベントをシンクすることに似ています。MFC ダイアログ ボックスにおける Windows フォーム ユーザー コントロールのホスト
Windows フォームのユーザー コントロールを MFC ダイアログ ボックスでホストする方法を説明します。方法 : Windows フォームで DDX/DDV データ バインディングを実行する
ネイティブの C++ 文字列を .NET ユーザー コントロールにバインドする方法を示します。