Beispiele für Plattformaufrufe

Die folgenden Beispiele veranschaulichen, wie Sie die MessageBox-Funktion in User32.dll definieren und aufrufen können, indem Sie eine einfache Zeichenfolge als Argument übergeben. In den Beispielen ist das DllImportAttribute.CharSet Field-Feld auf Auto festgelegt, d. h., die Zielplattform bestimmt über die Zeichenbreite und das Marshallen von Zeichenfolgen.

Dasselbe Beispiel wird in Visual Basic, C# und C++ angezeigt. Um alle Beispiele anzuzeigen, klicken Sie in der oberen linken Ecke der Seite auf die Schaltfläche Sprachfilter . Weitere Beispiele finden Sie unter Marshallen von Daten mit Plattformaufruf.

Imports System.Runtime.InteropServices

Public Class Win32
    Declare Auto Function MessageBox Lib "user32.dll" _
       (ByVal hWnd As Integer, ByVal txt As String, _
       ByVal caption As String, ByVal Typ As Integer) As IntPtr
End Class

Public Class HelloWorld    
    Public Shared Sub Main()
        Win32.MessageBox(0, "Hello World", "Platform Invoke Sample", 0)
    End Sub
End Class
using System.Runtime.InteropServices;

public class Win32 {
     [DllImport("user32.dll", CharSet=CharSet.Auto)]
     public static extern IntPtr MessageBox(int hWnd, String text, 
                     String caption, uint type);
}

public class HelloWorld {
    public static void Main() {
       Win32.MessageBox(0, "Hello World", "Platform Invoke Sample", 0);
    }
}      
using namespace System::Runtime::InteropServices;

typedef void* HWND;
[DllImport("user32", CharSet=CharSet::Auto)]
extern "C" IntPtr MessageBox(HWND hWnd,
                          String* pText,
                          String* pCaption,
                          unsigned int uType);
void main(void) {
     String* pText = L"Hello World!";
     String* pCaption = L"Platform Invoke Sample";
     MessageBox(0, pText, pCaption, 0);
}

Siehe auch

Referenz

DllImportAttribute Class

Konzepte

Erstellen von Prototypen in verwaltetem Code
Angeben eines Zeichensatzes