アンマネージ DLL 関数の処理
プラットフォーム呼び出しは、マネージ コードから、たとえば Win32 API の関数のような、ダイナミック リンク ライブラリ (DLL) に実装されたアンマネージ関数を呼び出すことができるようにするサービスです。 プラットフォーム呼び出しは、エクスポートされた関数を検索して呼び出し、必要に応じてその引数 (整数、文字列、配列、構造体など) をマーシャリングして、相互運用上の境界にまたがる動作を可能にします。 このサービスの詳細については、「プラットフォーム呼び出しの詳細」を参照してください。
このセクションでは、アンマネージ DLL 関数の処理と関連する作業について説明します。 次に示す作業のほかに、全般的な検討事項と、追加情報や例を参照できるリンクも提供します。
エクスポートされた DLL 関数を処理するには
-
少なくとも、関数の名前と、その関数を格納している DLL の名前を指定する必要があります。
-
既存のクラスを使用するか、各アンマネージ関数用のクラスを個別に作成するか、または関連するアンマネージ関数のセットを格納するクラスを 1 つ作成します。
-
[Visual Basic] Declare ステートメントを Function キーワードおよび Lib キーワードと共に使用します。 まれに、DllImportAttribute を Shared Function キーワードと共に使用できる場合もあります。 この場合については、このセクションで後述します。
[C#] DllImportAttribute を使って、DLL と関数を識別します。 メソッドに static 修飾子と extern 修飾子を使ってマークを付けます。
[C++] DllImportAttribute を使って、DLL と関数を識別します。 ラッパー メソッドまたはラッパー関数には extern "C" でマークを付けます。
-
他のマネージ メソッドの場合と同じ方法で、マネージ クラスのメソッドを呼び出します。 構造体を渡す場合や、コールバック関数を実装する場合は、特別な例に属します。
プラットフォーム呼び出しと共に使用する .NET ベースの宣言を構築する方法を示す例については、「プラットフォーム呼び出しによるデータのマーシャリング」を参照してください。