Ejemplos de invocación de plataforma

Actualización: noviembre 2007

En los siguientes ejemplos se muestra la forma de definir la función MessageBox y de llamarla en User32.dll, pasando una cadena sencilla como argumento. En los ejemplos, el campo DllImportAttribute.CharSet Field se establece en Auto para permitir que la plataforma de destino determine el ancho de los caracteres y el cálculo de las referencias a cadenas.

El mismo ejemplo se muestra en Visual Basic, C# y C++. Para que se muestren todos los lenguajes, haga clic en el botón Filtro de lenguaje del ángulo superior izquierdo de la página. Para obtener más ejemplos, vea Calcular referencias de datos con invocación de plataforma |

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);
}

Vea también

Conceptos

Crear prototipos en código administrado

Especificar un juego de caracteres

Referencia

DllImportAttribute