DllImportAttribute.SetLastError 필드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
호출 수신자가 특성화된 메서드에서 반환하기 전에 오류(SetLastError
Windows 또는 errno
다른 플랫폼에서)를 설정하는지 여부를 나타냅니다.
public: bool SetLastError;
public bool SetLastError;
val mutable SetLastError : bool
Public SetLastError As Boolean
필드 값
예제
경우에 따라 Visual Basic 개발자는 문을 사용하는 대신 를 사용하여 DllImportAttributeDeclare
관리 코드에서 DLL 함수를 정의합니다. 필드 설정 SetLastError 은 이러한 경우 중 하나입니다.
[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
설명
true
수신자가 Windows 또는 errno
다른 플랫폼에서 오류를 SetLastError
설정함을 나타내려면 이고, false
그렇지 않으면 입니다. 기본값은 false
입니다.
이 필드가 로 설정된 true
경우 런타임 마샬러는 반환된 값을 호출 GetLastError
하거나 errno
캐시하여 다른 API 호출에 의해 덮어쓰지 않도록 합니다.
.NET 6.0 이상 또는 .NET 5 이하 또는 GetLastWin32Error .NET Framework에서 를 호출 GetLastPInvokeError 하여 오류 코드를 검색할 수 있습니다.
.NET에서 오류 정보는 이 필드가 로 설정된 경우 호출 수신자를 호출하기 전에 지워집니다(로 설정0
true
). .NET Framework에서는 오류 정보가 지워지지 않습니다.
즉, .NET에서 및 GetLastWin32Error 에서 반환된 GetLastPInvokeError 오류 정보는 로 설정된 true
마지막 p/invoke DllImportAttribute.SetLastError 의 오류 정보만 나타냅니다. .NET Framework에서 오류 정보는 한 p/invoke에서 다음 p/invoke로 유지될 수 있습니다.
적용 대상
추가 정보
.NET