LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 의 의미는 다음과 같다. LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 뭔가 다 비슷 비슷해보이죠? 원래 c와 c++은 string이라는 똑똑한 자료구조형을 compiler차원에서 지원하고 있지 않습니다. 그대신 가장 많이 사용하는 string을 어떻게 저장해야 할지에 대해 고심한 결과... 결국 배열의 끝에 '\0'또는 0 또는 NULL값을 넣어 string을 표현하도록 했습니다. 결국 가장 적은 용량의 string처리와 가장 골치아픈 string처리가 탄생하는 순간이였죠. 어쨌거나 요점은... Windows에서는 이런 string처리를 위해서 char* 형을 그대로 쓰기 보..
Language
이 함수는 WinProC보다 먼저 메시지를 가로채는 것으로 보통 간단한 키보드/마우스 후킹을 할 때 쓰입니다. 클래스 위자드로 PreTranslateMessage() 함수를 추가만 하면 끝...ㅋ 간단하게 생성할 수 있죠... BOOL CLASS::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_LBUTTONUP) { 이벤트 처리 } } 이런 방식으로 메세지를 받아와서 이벤트를 처리하면 되겠죠..^^ 메세지는 WM_LBUTTONUP, WM_LBUTTODOWN, WM_RBUTTONUP, WM_RBUTTONDOWN, WM_KEYDOWN,... etc. 어떤 입력 디바이스의 메세지에 따라 조건을 걸면 되겠군요.
MFC를 사용할 때 파일의 크기를 확인하려면 어떻게 해야 할까요? 복잡해 보일 수도 있지만, 사실 간단한 함수 몇 개만으로 이 작업을 수행할 수 있습니다. 본 글에서는 CreateFile()로 파일의 핸들을 얻고, GetFileSize()로 파일의 크기를 확인하는 방법에 대해 자세히 알아보겠습니다. 1. 파일의 핸들 얻기: CreateFile() 먼저, 파일의 크기를 확인하려면 해당 파일의 핸들을 얻어야 합니다. 이를 위해 CreateFile() 함수를 사용합니다. CString strInputPath; // 파일 경로 저장 변수 HANDLE hFile = CreateFile( strInputPath, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL ); 2. 핸들 유효..
1. SIFT (Scale Invariant Feature Transform) 란 크기와 회전에 불변한 특징을 추출하는 것, 그리고 이를 이용해서 Detection 이나 Recognition 에 응용하곤 합니다. SIFT 는 99 년 부터 연구가 되었다고 합니다. (헉..!) Conference 에 몇번 소개 되었었고 IJCV 2004 (Intertional Journal of Conputer Vision) 에 저널로 내놓은 것이 가장 완성판인것 같습니다. SIFT 에도 매칭 키포인트를 비교할 때 차원의 문제가 존재하는데 발빠른 사람이 차원을 줄이는 PCA 를 이용해서 PCA-SIFT 를 논문으로 내놓았고요. 소스코드도 여기저기 조금씩(?) 공개되어 있고, Matlab 도 있고 C 코드도 있더군요. 자세..