DLL 関数の呼び出し

アンマネージド DLL 関数の呼び出しは、他のマネージド コードの呼び出しとほとんど同じですが、最初のうちは DLL 関数がわかりづらいと感じる違いがあります。 ここでは、通常とは異なる呼び出しに関連するいくつかの問題について説明しているトピックを紹介します。

プラットフォーム呼び出しから返される構造体は、マネージド コードとアンマネージド コードで同じ表現のデータ型である必要があります。 このような型のことは blittable 型と呼ばれます。これは、会話が必要ではないためです (「Blittable and Non-Blittable Types」(blittable 型と非 blittable 型) を参照してください)。 戻り値の型が非 blittable 構造体の関数を呼び出すには、非 blittable 型と同じサイズの blittable ヘルパー型を定義し、関数からデータが返された後にそのデータを変換します。

このセクションの内容

構造体の受け渡し
事前に定義されたレイアウトを使用して、データ構造体の受け渡しに関する問題を特定します。

コールバック関数
コールバック関数に関する基本情報を提供します。

方法: コールバック関数を実装する
マネージド コードにコールバック関数を実装する方法について説明します。

アンマネージ DLL 関数の処理
プラットフォーム呼び出しを使用して、アンマネージ DLL 関数を呼び出す方法について説明します。

プラットフォーム呼び出しによるデータのマーシャリング
メソッドのパラメーターを宣言してアンマネージ ライブラリによってエクスポートされた関数に引数を渡す方法について説明します。