2009. 7. 16. 10:00

GetLastError()



Windows 시스템에서 함수를 사용할 때 이녀석이 제대로 실행되지 않고 에러를 발생시킬 경우가 허다하다.
사실.. 프로그램을 짜면서 에러 하나 없이 순탄하게 짜는 사람이 있을까마는..
적어도 난 한번도 없다면서.. -_-;

그럼 에러가 발생했다 라는것 말고 무슨 이유로 에러가 발생했다는 것을 아는 방법이 없을까?
수정을 하려 해도 어떤 이유에서 에러가 발생하는 지 알아야 수정을 할것인데...
그래서 나온 것이 바로 GetLastError() 라는 함수이다. GetLastError()를 에러가 발생하는 함수 바로 뒤에 호출하게 되면 오류의 원인에 대한 에러코드를 얻을 수가 있다.

DWORD GetLastError(void);

MSDN을 보게 되면 수많은 에러코드의 의미가 나와있다.
오호라.. MSDN을 보니 대충 0 ~ 15999가지의 에러에 대한 내용이 있는 모양이다. 열라 많다 -_-;;

간단하게 사용법을 보면은..
...
HANDLE hFile = CreateFile(...);
if(hFile == INVALID_HANDLE_VALUE)
{
    printf("Error Code : %d \n", GetLastError());
}
...

위와 같이 사용을 하게 될 경우, CreateFile()의 결과가 잘못될 경우, if문의 GetLastError()의 반환값을 보구선 어떤 이유로 원치 않는 결과가 나왔는지를 확인 할 수가 있다.


'Programmings > Windows Programming' 카테고리의 다른 글

DLL에서 WndProc 메시지 처리하는 방법  (0) 2010.02.11
아스키코드(ASCII CODE)와 유티코드(UNICODE)  (0) 2009.10.09
WinIO  (0) 2009.06.23
IME 입력모드 설정  (5) 2009.05.29
레지스트리(Registry)  (0) 2009.05.29