전체 글

QA Engineer Coding Blog!! QA이지만 자동화와 개발에 관심이 많고 업무에 접목하고 싶어하는 평범한 QA 입니다.
1. 사각형 충돌 사각형의 도형간의 출력처리에 관한 함수입니다. 먼저 사각형이 서로 부딫혔을때에 대한 처리를 진행해야 하는데 따로 함수가 있기는 하지만 함수를 사용하지 않고 처리하게 되면 조건이 너무 번거롭게 됩니다. 아마 아래와 같은 형식의 조건문이 필요할 것 입니다. if ( RC_Left.left RC_Right.left && RC_Left.bottom > RC_Right.top) 모든 사각형끼리의 각 위치의 값을 더해야 하지만 다음 함수를 통해 쉽게 해결 할 수 있습니다. IntersectRect 해당 함수는 두가지의 사각형의 교차점을 계산하고 서로 교차하는 지점이 있는지를 확인해주는..
0. InvalidateRect 우선 지속전인 화면 표시를 위해서는 InvalidateRect 라는 함수가 필요합니다. 해당 함수는 특정 영역을 업데이트 (다시 그리는)는 함수입니다. BOOL InvalidateRect( _In_ HWND hWnd, _In_ const RECT *lpRect, _In_ BOOL bErase ); 매게 변수 의미 hWnd 업데이트할 윈도우의 핸들값을 입력합니다. 해당부분이 NULL일 경우 모든 윈도우를 다시 그립니다. *lpRect 업데이트할 영역을 설정합니다. RECT 구조의 좌표로 입력할 경우 해당 영역에 , NULL 일 경우 전체 영역이 설정됩니다. bErase 영역안에 배경이 업데이트 될때 제거될 것인지의 여부를 결정합니다. 값이 true이면 BeginPaint 함..
API를 공부하다보니 함수가 재정의 되고 치완되는 값이 많은데 도대체 #define 설정을 그저 천저치 명령어로가볍게 넘어가서 혼란이 올때가 있어 다시 정리해봅니다. #define은 말그대로 어떤 대상을 치환하여 설정된 값으로 변경해줍니다.아래 예제와 같이 간단한 숫자를 미리 설정할 수도 있습니다. #include #define pi 3.1415167 void main(){printf(" %f ", pi);} //출력 결과 3.1415167 또는 하나의 대입뿐만 아니라 수식으로도 활용할 수 있습니다. #include #define PLUS(x,y) x+y void main(){int Number = PLUS(5,5)printf(" %d" , Nubmer);} //출력 결과10 다만, 복잡한 대입연산의 경..
때는 2015년 5월...달력을 만들자 마자 당시 프로그래머 분이 이번에는 Url을 파싱해서 하이퍼 링크만따로 텍스트로 저장하는 프로그램을 만들어 보라고 하셔서 오랜 시간끝에 만든 프로그램.(당시 나에게는 난이도가 상당했다...) 당시 url 리스트를 1줄씩 정리하고 한줄씩 읽어와서 정규식으로 잘라내는데...정규식 설정에 하루 종일 걸렸습니다. C#을 선택한 이유는..기본으로 url 접속 지원이 되서...였습니다.아무튼 이후 Validation , Verificatio 을 위한 XML 파싱을 하려고 했다가..중단하였습니다.추후 파싱을 통한 사전 테스팅을 하면 좋겠네요.
때는 2015.05월...C언어를 나름 공부하고 있을 무렵 같은 프로잭트 팀의 프로그래머 분에게 프로그래밍을 가르쳐달라고 했는데(그때 하드 트레이닝을 시킬줄이야...) 달력을 만들어오라는 숙제를 내줘서 급하게 하루만에 만든 프로그램입니다. 배열을 사용하지 않았고 (순수 노가다) 실행 파일과 동일 위치에 텍스트 파일로 출력됩니다.지금 다시 만들라면야 동시에 요일별 색상이라든지...1년치라든지 수정이 가능하겠지만..암튼..제일 처음 만든 콘솔 프로그램이라서 기억에 남습니다.
Window API에서 처음 문자열 출력을 할때 당황하지 않을 수 없었습니다. 도스 콘솔 시절에서 사용했던 printf 또는 std::cout 같은 함수를 사용하다가 출력 좌표와 HDC 값등..추가된 부분이 너무 많기 때문입니다.. 또한 유니코드와 멀티바이트등의 구분 또한 간단하게 문자 또는 문자열을 출력하고 싶은 작성자에 멘탈을 공격하기에 충분했습니다... 아무튼 Window API에서 제공하는 문자출력 방법에 대해서 알아보도록 하겠습니다. TextOut : 현재 선택된 폰트 , 배경색 및 글자색을 사용하여 지정된 위치에 문자 스트링을 기록하는 함수합니다. BOOL TextOut( _In_ HDC hdc, _In_ int nXStart, _In_ int nYStart, _In_ LPCTSTR lpStr..
LPSTR, LPCSTR, LPTSTR, LPCTSTR , LPWSTR, LPCWSTR 출처 - http://egloos.zum.com/pelican7/v/1768951 http://blog.naver.com/kkan22/80050248215 윈도우서는 string 처리를 위해서 char* 형을 그대로 쓰기보다는 위와 같은 표현으로 대치해 사용함으로써, 개발의 편의성을 돕고있다고 합니다. LP는 Long Pointer의 약어로 옛 윈도우의 유산입니다. :과거 Windows 3.1시절에는 포인터는 모두 16bit였고, 24bit 메모리를 long Pointer라는 것을 통해 extended memory 라는 이름으로 관리했었습니다. (현재 .Net에서는 64bit pointer를 , 그 이전에는 32bit..
이제 마지막 부분을 확인해보겠습니다. LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){PAINTSTRUCT ps;HDC hdc; switch(uMsg){case WM_PAINT: { hdc = BeginPaint(hWnd, &ps); TextOut(hdc, 100, 100, "Hellow Wordl!", 13); EndPaint(hWnd , &ps); break; } case WM_DESTROY: { PostQuitMessage(0); break; } }return DefWindowProc( hwnd , uMsg , wParam , lParam );} LRESULT CALLBACK WindowProc(...):..
QA Engineer  - P군
QA Engineer Coding Blog