Verwenden nicht verwalteter DLL-Funktionen

Der Plattformaufruf ist ein Dienst, mit dem nicht verwaltete Funktionen, die in DLLs (Dynamic Link Libraries) implementiert sind (z. B. in der Win32-API), von verwaltetem Code aufgerufen werden können. Durch diesen Dienst wird eine exportierte Funktion gesucht und aufgerufen, und die dazugehörigen Argumente (ganze Zahlen, Zeichenfolgen, Arrays, Strukturen usw.) werden gegebenenfalls über die Grenzen der Interoperation hinaus gemarshallt. Weitere Informationen zu diesem Dienst finden Sie unter Genauere Betrachtung von Plattformaufrufen.

In diesem Abschnitt erhalten Sie eine Einführung in verschiedene Aufgaben, die mit der Verarbeitung nicht verwalteter DLL-Funktionen verbunden sind. Zusätzlich zu den folgenden Aufgaben finden Sie auch einige allgemeine Überlegungen und einen Link, über den Sie weitere Informationen und Beispiele aufrufen können.

So verarbeiten Sie exportierte DLL-Funktionen

  1. Identifizieren von Funktionen in DLLs.

    Sie müssen mindestens den Namen der Funktion und den Namen der DLL angeben, die sie enthält.

  2. Erstellen einer Klasse zum Halten von DLL-Funktionen.

    Sie können eine bestehende Klasse verwenden, eine einzelne Klasse für jede nicht verwaltete Funktion erstellen oder eine Klasse erstellen, die einen Satz verknüpfter, nicht verwalteter Funktionen enthält.

  3. Erstellen von Prototypen in verwaltetem Code.

    [Visual Basic] Verwenden Sie die Declare-Anweisung mit den Schlüsselwörtern Function und Lib. In einigen wenigen Fällen können Sie das DllImportAttribute mit den Schlüsselwörtern Shared Function verwenden. Diese Fälle werden weiter unten im Abschnitt erklärt.

    [C#] Verwenden Sie das DllImportAttribute zum Identifizieren der DLL und der Funktion. Markieren Sie die Methode mit den Modifizierern static und extern.

    [C++] Verwenden Sie das DllImportAttribute zum Identifizieren der DLL und der Funktion. Markieren Sie die Wrappermethode oder -funktion mit extern "C".

  4. Aufrufen einer DLL-Funktion.

    Rufen Sie die Methode für die verwaltete Klasse in gleicher Weise auf wie jede andere verwaltete Methode. Übergeben von Strukturen und Implementieren von Rückruffunktionen sind spezielle Fälle.

Beispiele für das Erstellen von .NET-basierten Deklarationen, die mit Plattformaufruf verwendet werden, finden Sie unter Marshallen von Daten mit Plattformaufruf.

Siehe auch

Konzepte

Genauere Betrachtung von Plattformaufrufen

Beispiele für Plattformaufrufe

Interop-Marshalling

Weitere Ressourcen

Interoperation mit nicht verwaltetem Code