■ Win32 API 호출시 에러 코드를 구하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
using System; using System.Runtime.InteropServices; int errorCode = Marshal.GetLastWin32Error(); Exception exception = Marshal.GetExceptionForHR(errorCode); if(exception != null) { Console.WriteLine(exception.Message); } |
※ .NET에서 Win32 API를 Interop으로 호출시 실패 원인을 알 수 없다.
※ Win32 호출 실패시 원인을 알고 싶은 경우 Win32 API에서 제공되는 GetLastError API를 이용하는데, .NET BCL의 Marshal 타입에서 정적 메소드로 제공되고 있다.