링크 여기에 들어가보면 응용 프로그램 개발에 대한 커리큘럼(?)이 이해되기 쉽게 나와 있으니 참고해보자!
위의 글에서 win32 api를 먼저 배워 윈도우 메시지에 대한 전반적인 이해를 하고 MFC를 시작하면 좋다고 한다. SoEn:소프트웨어 공학 연구소 여기에 win32 api에 대한 기초강의가 잘 설명돼 있으니 굳이 책을 사지 말고 무료로 기초를 다져 봅시다.
1. 프로젝트 만들기
1. visual studio 에 들어가 새 프로젝트를 누른다.2. 다음
3.
위의 과정으로 win 32 api 개발을 위한 프로젝트 환경이 모두 준비됐다.
2. 빈 창을 띄우는 코드 실행하기
1. 소스 파일에 새 항목을 추가하여 main.cpp 파일을 만들자!
2. 추가된 메인 파일에 아래 코드를 복붙 하면 완료!!!
빈 창을 띄우는 winapi 코드 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); HINSTANCE g_hInst; LPSTR lpszClass="First"; int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_hInst=hInstance; WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); WndClass.hCursor=LoadCursor(NULL,IDC_ARROW); WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION); WndClass.hInstance=hInstance; WndClass.lpfnWndProc=(WNDPROC)WndProc; WndClass.lpszClassName=lpszClass; WndClass.lpszMenuName=NULL; WndClass.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&WndClass); hWnd=CreateWindow(lpszClass,lpszClass,WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,(HMENU)NULL,hInstance,NULL); ShowWindow(hWnd,nCmdShow); while(GetMessage(&Message,0,0,0)) { TranslateMessage(&Message); DispatchMessage(&Message); } return Message.wParam; } LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { switch(iMessage) { case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } | cs |
3. 에러 잡기!
위의 코드를 컴파일 하면 되부분 될 텐데 안되는 사람도 있을 거다.
error C2440: '=' : 'LPSTR'에서 'LPCWSTR'(으)로 변환할 수 없습니다.
error C2664: 'CreateWindowExW' : 매개 변수 2을(를) 'LPSTR'에서 'LPCWSTR'(으)로 변환할 수 없습니다.
위와 같은 에러가 뜨면서 안되는 사람들은 아래와 같은 방법으로 해결 할 수 있다.
1. 프로젝트 속성에 들어가기
2. 구성속성/일반/문자 집합 항목에서 "멀티바이트 문자 집합 사용" 을 선택한다.
3. 구성속성/링커/중분 링크 사용 항목에서 "아니요" 를 선택한다.
오류 해결 끝~~
다음에는 win32 api를 통해 메모장을 제어하는 것을 구현해보자!
댓글 없음:
댓글 쓰기