クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2005
Visual Studio ドキュメント
.NET Framework の拡張開発
相互運用性
相互運用マーシャリング

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2005/.Net Framework 2.0

その他のバージョンについては、以下の情報を参照してください。
.NET Framework 開発者ガイド
プラットフォーム呼び出しによるデータのマーシャリング

アンマネージ ライブラリからエクスポートされた関数を呼び出すために、.NET Framework アプリケーションはそのアンマネージ関数を表す、マネージ コード内の関数プロトタイプを必要とします。プラットフォーム呼び出しによってデータを正確にマーシャリングできるようにするプロトタイプを作成するには、次の処理を行う必要があります。

  • マネージ コード内の静的関数またはメソッドに DLLImportAttribute 属性を適用します。

  • アンマネージ データ型の代わりに、マネージ データ型を使用します。

アンマネージ関数と共に提供されるドキュメントを使用すると、等価のマネージ プロトタイプを構築できます。その場合には、属性とそのオプションのフィールドを適用し、アンマネージ型の代わりにマネージ データ型を使用します。DllImportAttribute の適用方法については、「アンマネージ DLL 関数の処理」を参照してください。

このセクションでは、アンマネージ ライブラリによってエクスポートされた関数に引数を渡して戻り値を受け取るマネージ関数プロトタイプの作成方法をサンプルで紹介します。このサンプルでは、さらに、いつ MarshalAsAttribute 属性と Marshal クラスを使用して、明示的にデータをマーシャリングする必要があるかについても示します。

このセクションの内容

プラットフォーム呼び出しのデータ型

マネージ データ型および対応するアンマネージ データ型の一覧を示します。

PinvokeLib.dll

Pinvoke.dll によって提供されるライブラリ関数を定義するコードを示します。

文字列のマーシャリング

文字列を値または参照渡しする方法、および構造体、クラス、または配列に組み込んで渡す方法を説明します。

クラス、構造体、および共用体のマーシャリング

クラスを値渡しする方法、各種構造体の渡し方、および値と混合型を含む共用体の渡し方を説明します。

型の配列のマーシャリング

整数から構成される多次元配列を値渡しする方法、および 1 次元配列を参照渡しする方法を説明します。

各種のマーシャリングのサンプル

相互運用マーシャリングの動作に影響を与えるガベージ コレクションとスレッド処理の特徴を説明します。

関連するセクション

相互運用マーシャリング

COM 相互運用機能とプラットフォーム呼び出しによるマーシャリングについて説明します。

既定のマーシャリングの動作

相互運用マーシャリング サービスがデータをマーシャリングするときに従う規則について説明します。

アンマネージ DLL 関数の処理

プラットフォーム呼び出しを使ってアンマネージ DLL 関数を呼び出す方法を説明します。

コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker