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

プラットフォーム呼び出しは、マネージ コードから、たとえば Win32 API の関数のような、ダイナミック リンク ライブラリ (DLL) に実装されたアンマネージ関数を呼び出すことができるようにするサービスです。 プラットフォーム呼び出しは、エクスポートされた関数を検索して呼び出し、必要に応じてその引数 (整数、文字列、配列、構造体など) をマーシャリングして、相互運用上の境界にまたがる動作を可能にします。 このサービスの詳細については、「プラットフォーム呼び出しの詳細」を参照してください。

このセクションでは、アンマネージ DLL 関数の処理と関連する作業について説明します。 次に示す作業のほかに、全般的な検討事項と、追加情報や例を参照できるリンクも提供します。

エクスポートされた DLL 関数を処理するには

  1. DLL 内の関数を識別します

    少なくとも、関数の名前と、その関数を格納している DLL の名前を指定する必要があります。

  2. DLL 関数を保持するクラスを作成します

    既存のクラスを使用するか、各アンマネージ関数用のクラスを個別に作成するか、または関連するアンマネージ関数のセットを格納するクラスを 1 つ作成します。

  3. マネージ コードでのプロトタイプを作成します

    [Visual Basic] Declare ステートメントを Function キーワードおよび Lib キーワードと共に使用します。 まれに、DllImportAttributeShared Function キーワードと共に使用できる場合もあります。 この場合については、このセクションで後述します。

    [C#] DllImportAttribute を使って、DLL と関数を識別します。 メソッドに static 修飾子と extern 修飾子を使ってマークを付けます。

    [C++] DllImportAttribute を使って、DLL と関数を識別します。 ラッパー メソッドまたはラッパー関数には extern "C" でマークを付けます。

  4. DLL 関数を呼び出します

    他のマネージ メソッドの場合と同じ方法で、マネージ クラスのメソッドを呼び出します。 構造体を渡す場合や、コールバック関数を実装する場合は、特別な例に属します。

プラットフォーム呼び出しと共に使用する .NET ベースの宣言を構築する方法を示す例については、「プラットフォーム呼び出しによるデータのマーシャリング」を参照してください。

参照

概念

プラットフォーム呼び出しの詳細

プラットフォーム呼び出しの例

相互運用マーシャリング

その他の技術情報

アンマネージ コードとの相互運用