반응형
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 |
댓글