MVC패턴에 대한 글은 조금만 검색해도 많이 나옵니다. 그렇기 때문에 MVC패턴 자체에 대한 설명은 하지 않겠습니다. (참고 : 안드로이드님 블로그 - MVC패턴 이해하기(소리 주의!)) 이게 많이 쓴다는 것과 어떻게 동작하는지는 알고 있지만 갑자기 설명하라고 하면 여전이 잘 말하질 못합니다 ㅡ.-;;; 아마도 인식하지 않고 써서 그런듯합니다. 그래서 가볍게 c++로 만들어 보면 더 기억에 남지 않을까 해서 한번 정리 해봅니다. 디자인 페턴에 가장 기본이 되는 MVC패턴은 기본적으로 모든 활동을 컨트롤러가 통제합니다. 비주얼 프로그래밍툴에서는 보통 MVC패턴의 모양을 만들어 줍니다. 비하인드 코드 패이지가 컨트롤러가 되죠. MVC패턴의 기본 구조 1.프로젝트 생성 프로젝트는 콘솔프로젝트로 만듭니다. 모든..
간만에 c++로 샘플을 만들었는데 에러가... error C3861: 'ShowScreen': 식별자를 찾을 수 없습니다. 1. 재연하기 아래 코드를 넣고 빌드하면 에러가 납니다. int _tmain(int argc, _TCHAR* argv[]) { ShowScreen(); return 0; } void ShowScreen() { char sData[255]; printf("--------------아무숫자나 입력하세요------------\n"); scanf( sData); } 2. 해결 방법 이건 초보적인 실수 인데 헤더로 따로 관리하지 않는 경우 모든 메소드는 순차적으로 접근해야 합니다. B함수에서 A를 호출하기 위해서는 B함수보다 위에 A를 만들어야 한다는 것이죠. 다른 방법으로 상단에 함수원형을..
언제나 조심해야 할것이 QT는 한글경로 인식을 못합니다. (설정하면 될라나?) 한글경로 안들어가게 조심해주시고 시작하세요. 1. 프로젝트 생성File > New File or Project 을 눌러 프로젝트를 생성합니다. 프로젝트 타입은 Qt Quick Project로 하시고 Qt Quick Application 을 선택하시면 됩니다. 다른건 그냥 Next하시면 되고 타켓설정에서 데스크탑을 꼭 체크해줍니다. 완료를 하면 이렇게 핼로월드 코드가 생성됩니다. 2.실행 왼쪽하단에 실행이나 디버기버깅버튼을 눌러 실행 해봅시다. 그냥 누르면 심비안 디바이스로 실행됩니다. 스크린 샷을 보시면 아시겠지만 이게 디버긴하기는 그닥 않좋습니다-_-;;; 물론 화면을 좀 설정하면 그래도 할만하긴 합니다 ㅎㅎㅎ 2-1. Mi..
어쩌다보니 QT를 해야할 일이 생겼습니다 ㅡ.-;;; 노키아에서 만든 컨트롤 컴퍼넌트 같은 것인데 모바일전용으로 만든거 같은데 어차피 아무대서나 쓸수 있는듯 하군요. 비주얼스트디오용 플러그인도 있지만.........아놔 비주얼스트디어오 C++이 프로젝트 파일이 없으면 해더와 소스파일을 자동으로 모아서 보여주다보니 개판입니다;;;; 그러다보니 파일트리가 재대로 로드됬는지 확인도 안되고;;;;; 그래서 결국 이클립스를 설정했습니다. 하지만 이것도 빌드는 안되죠-_-;;; 빌드는 Qt Creators로 하셔야 합니다. 1. QT SDK 설치Qt관련 다운로드는 노키아 Qt에서 받을수 있습니다. 노키아 Qt - 새 페이지 2. QT SDKQtSDK를 받아야 겠죠? ㅎㅎㅎ 노키아 Qt - Qt SDK 다운로드 위에..
이 글은 윈도우XP기준입니다. 다른 운영체제에서는 해당 API가 작동하지 않거나 다른 동작을 할수 있습니다. 제가 올린 대부분의 예제는 유니코드를 기준으로 함니다. (프로젝트 속성 -> 구성 속성 -> 일반 -> 문자 집합 -> 유니코드 문자 집합 사용) API연습하기 참 좋은 소재가 메모장이죠 ㅎㅎㅎ 만만한게 메모장(으잌!) 1.메모짱 어디있니~메모장을 찾아 글을 출력해보겠습니다. 1-1.적당한 곳에 변수 선언 //메모장의 핸들 저장용 HWND hwndNotepad; //차일드 핸들 저장용 HWND hwndNotepadChild; //이 문자열을 출력한다. LPCTSTR strText = L"메모짱 하악하악 (ㅡ.ㅡ;;;)"; 1-2. 적당한 곳에 출력 코드 입력 //메모장 핸들을 찾는다. hwndNo..
http://lmgtfy.com/?q=%ED%95%A8%EC%88%98%ED%8F%AC%EC%9D%B8%ED%84%B0 ↑딱히 널 위해 해주는건 아니야 세상 살다보면 별일이 다 발생한다지만 코딩질 하다가 발생하는 난감함중 하나가 사용자(여기서 말하는 사용자는 내가 만든 dll이나 클래스 등을 사용하는 사람을 말한다.)가 만든 코드를 호출해야 할때입니다. 머....난감하다는 표현으로 하는 이유는 이런 방식은 내가 개발하고 있는 방향에서 반대로 간다고 생각하기때문이지 별다른 뜻이 있는건 아닙니다. ㅎㅎ(한마디로 심각하게 개인적인 견해라는 말씀) 1.함수포인터 콜백이런 경우 흔이 쓰는 방법이 함수포인터를 이용한 콜백입니다.( CallBack ) (닷넷에서는 델리게이트를 통해 구현 할수 있저.) 몬소리냐하면 1..
c++에서 배열을 구하는 방법은 많습니다. 그중 포인터로 넘어온 배열의 갯수를 구하는 방법을 알아보도록 하겠습니다. 1. 일반적으로 배열구하는 방법 int a = inteof(Temp) / sizeof(Temp[0]); 그런데 이 방법은 정작 포인터로 넘어온 주소는 배열을 구하지 못합니다. 그래서 보통은 매개변수로 배열의 갯수를 보내주는 방식을 많이 사용하저. 어쩌면 당연한 것인데.....사이즈오브는 변수의 크기를 리턴하므로 포인터를 넣으면 포인터의 대상이 아닌 포인터자체의 크기를 리턴하기 때문입니다.(포인터를 위 공식으로 넣으면 1이 나옵니다.) 포인터로 넘어온 배열 갯수 구하는 방법 _countof를 이용하면 포인터로 넘어온 배열의 갯수를 구할수 있습니다. void Temp( int *intTemp ..
어쿠.... 제가 진행하는 프로잭트는 거의 Win32프로젝트 입니다. 닷넷환경에 익숙한 저한테는 너무 가혹한 ㅜㅡ 어찌됬건 MFC조차 사용하면 안되는 환경에서 코딩을 하다보니 MFC로 된 자료를 보면 혈압이 올라서 정리해 둡니다. .txt 파일을 읽고쓰는건 기초중에 기초라고 할수 있는데도 불구하고 MFC자료만-_-;;; 1. 기본 쓰기 읽기 #include "stdafx.h" #include #include #include void LoadFile() { //*.txt에 쓰기 FILE *fp; fp = fopen("test.txt","wt"); fwrite("sddfsfasd", sizeof(char[10]), 1, fp); fclose(fp); //*.txt를 읽기 FILE *fp; int i = 0;..
error C2146: 구문 오류 : ';'이(가) 'PVOID64' 식별자 앞에 없습니다. 에러... 멍미? 무려 winnt.h에서 나는 에러입니다 ㅡ,.ㅡ; 머 어쩌라는겨 ㅎㅎㅎㅎ typedef void* PVOID; typedef void* POINTER_64; typedef void POINTER_64 PVOID64; 요걸 typedef void* PVOID; typedef void* POINTER_64; typedef POINTER_64 PVOID64; 요렇게 바꾸면 됩니다. 은근이 코드 3줄다 몬가 다르니 그냥 3줄 한번에 복사해서 쓰시길 ㅎㅎ
이전글 ( 키보드 후킹하기 )에서 이어 집니다. 키보드 후킹에 이어 마우스 후킹입니다. 마우스 후킹은 키보드 후킹이랑 같습니다. 단지 훅을 설치할때 WH_KEYBOARD_LL대신 WH_MOUSE_LL를 사용해야 한다는 것 외에는 별다를 것이 없습니다. hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc, hInst, 0); // hook 설치 hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, LowLevelMouseProc, hInst, 0); // hook 설치 마우스를 후킹하여 좌표를 얻어오는건 그다지 어려운 일이 아니다. 마우스의 위치를 알려주는 API가 있기 때문입니다. void ShowMouse(..