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 trueayarlanı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ır0true). .NET Framework'te hata bilgileri temizlenmez.
Bu, .NET üzerinde ve GetLastWin32Error tarafından GetLastPInvokeError döndürülen hata bilgilerinin yalnızca olarak ayarlanmış trueson 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.