DllImportAttribute.SetLastError Campo

Definición

Indica si el destinatario establece un error (SetLastError en Windows o errno en otras plataformas) antes de volver del método con atributos.

public: bool SetLastError;
public bool SetLastError;
val mutable SetLastError : bool
Public SetLastError As Boolean 

Valor de campo

Ejemplos

En algunos casos, Visual Basic desarrolladores usan el , en lugar de usar la instrucción /> SetLastError campo es uno de esos casos.

[DllImport("user32.dll", SetLastError = true)]
int MessageBoxA(IntPtr hWnd, String^ Text,
    String^ Caption, unsigned int Type);
internal static class NativeMethods
{
    [DllImport("user32.dll", SetLastError = true)]
    internal static extern int MessageBoxA(
        IntPtr hWnd, string lpText, string lpCaption, uint uType);
}
Friend Class NativeMethods
    <DllImport("user32.dll", SetLastError:=True)>
    Friend Shared Function MessageBoxA(hWnd As IntPtr, lpText As String,
        lpCaption As String, uType As UInteger) As Integer
    End Function
End Class

Comentarios

true para indicar que el destinatario establecerá un error a través de SetLastError en Windows o errno en otras plataformas; de lo contrario, false. El valor predeterminado es false.

Si este campo se establece trueen , el serializador en tiempo de ejecución llama a GetLastError o errno y almacena en caché el valor devuelto para evitar que se sobrescriba mediante otras llamadas API. Puede recuperar el código de error llamando a GetLastPInvokeError en .NET 6.0 y versiones posteriores o posteriores o GetLastWin32Error en .NET 5 y versiones posteriores o posteriores o .NET Framework.

En .NET, se borra la información de error (establecida en 0) antes de invocar al destinatario cuando este campo está establecido en true. En .NET Framework, no se borra la información de error. Esto significa que la información de error devuelta por GetLastPInvokeError y GetLastWin32Error en .NET representa solo la información de error de la última p/invoke con DllImportAttribute.SetLastError establecida en true. En .NET Framework, la información de error puede persistir de una p/invoke a la siguiente.

Se aplica a

Consulte también