C & C++/C & C++
[Tip] 에러 메시지 얻기
izen8
2011. 3. 29. 10:24
반응형
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()을 사용한다.
반응형