2014년 10월 29일 수요일

GetLastError()와 FormatMessage 이용.(에러메시지 출력)

DWORD dwErr = GetLastError();

TCHAR szMsg[ 1024 ] = {0,};

FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwErr, 0, szMsg, 1024, NULL );

AfxMessageBox( szMsg, MB_OK );



만약 FormatMessage 옵션에 FORMAT_MESSAGE_ALLOCATE_BUFFER 추가하면 다음과 같이 해야한다.



DWORD dwErr = GetLastError();

TCHAR* s = 0;

FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, dwErr, 0, s, 0, NULL );

AfxMessageBox( szMsg, MB_OK );



LocalFree( s );



메모리를 알아서 할당해주는 방식이므로, 동적할당 받았으니 따로 해제를 해주어야 한다.

댓글 없음: