'ETC' 카테고리의 다른 글
Doxygen 설치 및 사용법(한글 깨지는 현상 수정) (0) | 2013.07.21 |
---|
Doxygen 설치 및 사용법(한글 깨지는 현상 수정) (0) | 2013.07.21 |
---|
Chapter 01 에러 핸들링
윈도우의 Return Value의 의미를 한번 알아보자.
자료형 | 실패했을 때의 값 |
VOID | 실패란 없다. |
BOOL | 실패하면 무조건 0을 반환 성공하면 0 이외의 값을 반환 |
HANDLE | 반환 값은 대개 NULL but -1인 INVALID_HANDLE_VALUE를 반환한다. 그래서 MSDN를 참고해서 비교해야 한다. |
PVOID | 실패시 NULL 반환 성공시 메모리 주소 반환 |
LONG/DWORD | 뭐 만든사람이 알아서 만든거니 MSDN을 보자 |
윈도우 함수가 실패하면 Thread의 지역 저장소에 적절한 에러코드를 저장해 둔다.
Thread의 지역저장소에 저장된 에러 코드를 아래 함수가 꺼내 온다.
[Function] GetLastError
DWORD GetLastError();
http://msdn.microsoft.com/en-us/library/windows/desktop/ms679360(v=vs.85).aspx
Return Value는 DWORD이며 해당 VALUE의 정의는 WinError.h.에 정의되어 있다.
해당 Header의 일부 내용이다.
함수 실패시 무조건 GetLastError을 호출해야 한다.
[Tool] Error Lookup
GetLastError의 Return Value(DWORD)를 입력하면 WinError.h 의 MessageText를 출력해주는 Tool(Visual Studio 설치하면 있어요.)
[그림 2] Value 3을 입력한 Error Lookup [그림 3] Value 3의 WinError.h 의 정의
[Function] FormatMessage
DWORD WINAPI FormatMessage(
_In_ DWORD dwFlags,
_In_opt_ LPCVOID lpSource,
_In_ DWORD dwMessageId,
_In_ DWORD dwLanguageId,
_Out_ LPTSTR lpBuffer,
_In_ DWORD nSize,
_In_opt_ va_list *Arguments
);
http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85).aspx
[Function] SetLastError
VOID SetLastError(DWORD dwErrCode)
http://msdn.microsoft.com/ko-kr/library/windows/desktop/ms680627(v=vs.85).aspx
[예제] ErrorShow Application
[Function] GetDlgItemInt
UINT GetDlgItemInt(
int nID,
BOOL* lpTrans = NULL,
BOOL bSigned = TRUE
) const;
http://msdn.microsoft.com/ko-kr/library/c7t43w0s.aspx
http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=53
[Macro] MAKELANGID
WORD MAKELANGID(
USHORT usPrimaryLanguage,
USHORT usSubLanguage
);
http://msdn.microsoft.com/ko-kr/library/dd373908(en-us,VS.85).aspx
NotePad++에서 다음과 같은 식을
TEST(ab,"11")
TEST(bcd,"11")
TEST(cefg,"11")
TEST(d,"11")
TEST(e,"11")
TEST(f,"11")
TEST(g,"11")
TEST(h,"11")
TEST(i,"11")
TEST(j,"11")
아래와 같이 바꾸는 방법을 정규표현식을 활용하는 방법을 연구해봤다.
ab=TEST(ab,"11")
bcd=TEST(bcd,"11")
cdeee=TEST(cdeee,"11")
d=TEST(d,"11")
e=TEST(e,"11")
f=TEST(f,"11")
g=TEST(g,"11")
h=TEST(h,"11")
i=TEST(i,"11")
j=TEST(j,"11")
찾는단어: ^(.....(\w+))
바꿀단어:\2=\1
MFC Path 조작 함수 (0) | 2013.07.18 |
---|---|
Win32에서 MFC 쓰기 (0) | 2013.07.18 |
GTEST 설정법 (0) | 2013.06.30 |
MACRO (0) | 2013.06.16 |
MFC Chart Program (0) | 2012.05.07 |