DllImportAttribute.SetLastError Pole

Definice

Určuje, zda volaný nastaví chybu (SetLastError na Windows nebo errno na jiných platformách) před vrácením z atributové metody.

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

Hodnota pole

Příklady

V některých případech vývojáři Visual Basic používají DllImportAttribute místo příkazu Declare k definování funkce knihovny DLL ve spravovaném kódu. SetLastError Nastavení pole je jedním z těchto případů.

[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

Poznámky

true indikuje, že volaný nastaví chybu prostřednictvím SetLastError na Windows nebo errno na jiných platformách; jinak false. Výchozí hodnota je false.

Pokud je toto pole nastavené na true, volání GetLastError zařazování modulu runtime nebo errno uloží vrácenou hodnotu do mezipaměti, aby se zabránilo jeho přepsání jinými voláními rozhraní API. Kód chyby můžete načíst voláním GetLastPInvokeError na .NET 6.0 nebo novějším nebo GetLastWin32Error v .NET 5 nebo novějším nebo .NET Frameworku.

V .NET se informace o chybě vymažou (nastaví se na 0) před vyvoláním volaného, když je toto pole nastavené na true. V rozhraní .NET Framework nejsou informace o chybě vymazány. To znamená, že informace o chybách vrácené GetLastPInvokeError a GetLastWin32Error na .NET představují pouze informace o chybě z posledního volání p/invoke s DllImportAttribute.SetLastError nastavenou na true. V rozhraní .NET Framework můžou informace o chybě přetrvat z jednoho volání p/invoke na další.

Platí pro

Viz také