winapi의 오류를 문자열로 출력하기.
반응형
win api의 실패시 오류값은 dword.
내부로 들어가보면 알수없는 숫자들이 많다.
이를 문자열로 전화해서 출력하기 위해 GetLastError으로 에러 숫자코드를 받아
FormatMessage를 사용하여 바꾸어 준다.
#include < window.h >
void PrintError(DWORD dwErrorNo);
...
void PrintError(DWORD dwErrorNo)
{
LPVOID lpMsgBuf;
if (!FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dwErrorNo,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),// Default language
(LPTSTR) &lpMsgBuf,
0,
NULL ))
{
// Handle the error.
return;
}
// Free the buffer.
LocalFree( lpMsgBuf );
}
내부로 들어가보면 알수없는 숫자들이 많다.
이를 문자열로 전화해서 출력하기 위해 GetLastError으로 에러 숫자코드를 받아
FormatMessage를 사용하여 바꾸어 준다.
#include < window.h >
void PrintError(DWORD dwErrorNo);
...
void PrintError(DWORD dwErrorNo)
{
LPVOID lpMsgBuf;
if (!FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dwErrorNo,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),// Default language
(LPTSTR) &lpMsgBuf,
0,
NULL ))
{
// Handle the error.
return;
}
// Free the buffer.
LocalFree( lpMsgBuf );
}
'Study > C++' 카테고리의 다른 글
EnterCriticalSection 사용할때 주의 할점 (0) | 2010.03.20 |
---|---|
c++ 생각하기 3. (0) | 2010.03.16 |
가변 인수를 가지는 함수 및 매크로 만들기 (0) | 2010.03.13 |
c++ 생각하기 2. (0) | 2010.03.11 |
dllimport, dllexport (0) | 2010.03.10 |
TAGS.