삶 가운데 남긴 기록 AACII.TISTORY.COM
windows 시스템 함수 호출 오류시 오류코드 획득 본문
GetLastError()
윈도우즈 시스템 함수들은 에러가 났을 때 리턴 값이 대개 NULL 이기 때문에 에러 원인을 알 수 없습니다.
이럴 때 사용하는 함수가 GetLastError 함수를 사용하면 에러코드를 획득할 수 있습니다.
이 에러코드는 MSDN을 참고하면 무슨 에러인지 알 수 있게 됩니다.
#include <stdio.h>
#include <tchar.h>
#include <windows.h>
int _tmain(void)
{
HANDLE hFile = CreateFile(_T("TEST.DAT"), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
_tprintf( _T("error code: %d \n"), GetLastError() );
return 0;
}
return 0;
}
빌드 후 실행하게 되면 error code : 2 가 출력됩니다.
이 에러코드의 뜻은 파일이 존재하지 않는다는 뜻입니다.
존재하지 않은 파일을 CreateFile()에서 인수로 전달했기 때문입니다.
오류 확인은 오류가 발생한 직후에 해야 합니다.
GetLastError() 함수는 말그대로 가장 최근 발생한 에러코드를 리턴하기 때문입니다.
728x90
'DEV&OPS > C & C++' 카테고리의 다른 글
kernel object and object handle (0) | 2021.09.10 |
---|---|
Polymorphic 자료형 (0) | 2021.09.03 |
MFC String 자료형 (0) | 2021.09.01 |
C++ 문자열 처리(string class) (0) | 2021.09.01 |