본문 바로가기
C & C++/C & C++

[Tip] 에러 메시지 얻기

by izen8 2011. 3. 29.
반응형
GetLastError는 word값을 리턴하므로 어떤 에러가 발생했는지 구분하기가 힘들다. 이때는 FormatMessage함수를 이용한다. 사용 방법은 다음과 같다.

  DWORD e = GetLastError();
  char *s;
  FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM     // 시스템으로 부터 꺼내겠다
  | FORMAT_MESSAGE_ALLOCATE_BUFFER,                   // 필요한만큼 메모리를 할당해가라
  0,                           // 모듈핸들
  e,                           // 에러번호
  0,                           // 언어 디폴트언어
  (char*)&s, 0,           // 버퍼 , 버퍼크기   일반변수에 값받을때 포인터,
                               // 이중 포인터로 넘긴다. 원래값이(char*)라고 알려줘라.
  0);                         // va_list 형으로 얻을때 사용
  AfxMessageBox(s);
  LocalFree(s);           // FormatMessage()는 내부적으로 LocalAlloc()을 사용한다.


반응형

'C & C++ > C & C++' 카테고리의 다른 글

[Tip] Sleep() 함수 대신 프로그램 딜레이 시키기  (0) 2011.03.31
파일 복사시 진행률 받아오기  (0) 2011.03.29
파일 저장하기  (0) 2011.03.29
[ClipBoard] 클립보드 내용가져오기  (0) 2011.03.29
CWnd 이해하기  (0) 2011.03.29

댓글