Programming/VC++

[VC++] GetLastError 이용한 에러 메시출력 - Win32 API

Ronie.Kang 2008. 6. 30. 11:05
{
  DWORD eErrorCode  = GetLastError(); // thread 당 1개씩 존재하는 에러코드를 얻는다.
  printf("FAIL : %d ",e);  // 에러번호를 출력

  //에러번호 -> 문자열 변환
  char *szErrorMessage = NULL;

  FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_ALLOCATE_BUFFER,
      0, //문자열을 가진 DLL핸들(0: 시스템으로 부터 얻는다)
      eErrorCode, //에러 번호
      0, //언어
      (char*)&szErrorMessage,0, // 버퍼, 버퍼크기
      0); // va_list형 변수로 얻을때 사용

  printf( "%s ",szErrorMessage );
 
  // FormatMessage() is use the  LocalAlloc() in FormatMessag,
  // you can free buffer for LocalFree....
  LocalFree( szErrorMessage );
 }