DllImportAttribute.SetLastError Alan
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Çağıranın, öznitelikli yöntemden dönmeden önce bir hata ayarlayıp ayarlamadığını (SetLastError
Windows'ta veya errno
diğer platformlarda) gösterir.
public: bool SetLastError;
public bool SetLastError;
val mutable SetLastError : bool
Public SetLastError As Boolean
Alan Değeri
Örnekler
Bazı durumlarda Visual Basic geliştiricileri, yönetilen kodda DllImportAttributebir DLL işlevi tanımlamak için deyimini kullanmak Declare
yerine kullanır.
SetLastError Alanı ayarlamak bu durumlardan biridir.
[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
Açıklamalar
true
çağıranın Windows'da veya errno
diğer platformlarda aracılığıyla SetLastError
bir hata ayarlayacağını belirtmek için; aksi takdirde, false
. Varsayılan değer: false
.
Bu alan olarak true
ayarlanırsa, çalışma zamanı sıralayıcısı, diğer API çağrıları tarafından üzerine yazılmasını önlemek için döndürülen değeri çağırır GetLastError
veya errno
önbelleğe alır.
Hata kodunu almak için .NET 6.0 ve üzerini veya .NET 5 ve altı ya da GetLastWin32Error .NET Framework'ü çağırabilirsinizGetLastPInvokeError.
.NET'te, bu alan olarak ayarlandığında çağrıyı çağırmadan önce hata bilgileri temizlenir (olarak ayarlanır0
true
). .NET Framework'te hata bilgileri temizlenmez.
Bu, .NET üzerinde ve GetLastWin32Error tarafından GetLastPInvokeError döndürülen hata bilgilerinin yalnızca olarak ayarlanmış true
son p/invoke DllImportAttribute.SetLastError hata bilgilerini temsil ettiği anlamına gelir. .NET Framework'te hata bilgileri bir p/invoke'tan diğerine kalıcı olabilir.