[API] System Error 메시지 사용하기 WSAGetLastError()
프로그래밍 언어/C++2010. 1. 20. 09:44
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | // test.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include "winsock2.h" #pragma comment(lib, "ws2_32.lib") // 오류 출력 후 종료 void err_quit(char *msg) { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER| FORMAT_MESSAGE_FROM_SYSTEM, NULL, WSAGetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL); MessageBox(NULL, (LPCTSTR)lpMsgBuf, msg, MB_ICONERROR); LocalFree(lpMsgBuf); exit(-1); } // 오류 출력 MessageBox void err_display(char *msg) { LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER| FORMAT_MESSAGE_FROM_SYSTEM, NULL, WSAGetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpMsgBuf, 0, NULL); printf("[%s] %s", msg, (LPCTSTR)lpMsgBuf); LocalFree(lpMsgBuf); } int _tmain(int argc, _TCHAR* argv[]) { err_display("korea"); // show error comment err_quit("quit"); // show error MessageBox return 0; } |
WSAGetLastError() 함수를 이용하여 시스템 에러메시지를 유니코드별로 출력해준다.
'프로그래밍 언어 > C++' 카테고리의 다른 글
Visual C++ 컴파일러 옵션 - 멀티 코어(or 프로세서) 사용으로 빌드속도 최대로 끌어내보자!! (0) | 2010.02.02 |
---|---|
[IOCP] 리스트와 iocp를 이용한 Echo서버 소스 (0) | 2010.01.26 |
[Network] 1. C++ 기본 Winsock 에코(echo) 클래스 제작 (1) | 2009.12.28 |
1. DLL(Dynamic Linking Library) 제작 및 사용하기 (10) | 2009.12.18 |
Mysql API / C/C++ 연동하기 강좌 (7. ODBC를 이용한 mysql 연동하기) (5) | 2009.12.17 |