보통 윈도우 에러 코드는 GetLastError() 함수로
그 에러 코드를 확인할 수 있습니다.
그러면 WinError.h 파일에서 그 코드를 찾아 어떤 에러인지 찾아 볼수 있습니다.
하지만 그것보다는 아래처럼 윈도우의 에러 코드를 메시지로 확인할 수 있는 함수를 쓰는게 더 낫습니다.
메시지도 한글로 볼수 있습니다.
디버깅을 위해 보편적으로 많이 쓰는 코드인데, 안 보여서 제가 쓰는 버전을 올려 둡니다.
String GetLastErrorMsg(); 는 GetLastError() 에 대한 에러메시지를 돌려주고
String GetWindowsErrorMsg(DWORD ErrorNo); 는 지정한 에러 코드에 대해 해당하는 메시지를 돌려줍니다.
이 두 함수를 활용하면 GetLastError() 코드 값이나 WinError.h 파일을 확인하는 일이 덜어지겠죠.
//---------------------------------------------------------------------------
// 디버깅용 에러 메시지 확인.
String GetLastErrorMsg()
{
void *MsgBuf;
if ( !FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &MsgBuf,
0,
NULL) )
{
return "";
}
String msg = (char *)MsgBuf;
LocalFree(MsgBuf);
return msg;
}
String GetWindowsErrorMsg(DWORD ErrorNo)
{
void *MsgBuf;
if ( !FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
ErrorNo,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &MsgBuf,
0,
NULL) )
{
return "";
}
String msg = (char *)MsgBuf;
LocalFree(MsgBuf);
return msg;
}
//---------------------------------------------------------------------------
그럼.
|