==================================Outline====================================
WinAPI 기본형 코드
----------------------------------------------------------------------------
WinAPI기본형을 작성하고 분석해 보자.
#include <windows.h> //헤더 파일은 이것 하나면 된다. |
#include <windows.h> //헤더 파일은 이것 하나면 된다.
LRESULT CALLBACK /* 인트형 반환값이다.*/ WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK: long result 내부 프로그램에서는 호출할 수 없다. 호출 방식이 STD call 혹인 CDECL인지...
HWND: Window Handler, 인트형이다.
WPARAM: Word(4byte) 인자, type define이 되어 있다.
LPRAM과 WPRAM의 용량의 크기는 없다. 과거 메모리 용량이 작을 때 구분하여 사용하던 것이다.
HINSTANCE g_hInst; g for global, h for handler
LPSTR lpszClass = "First"; //long pointer string: 캐릭터 포인터
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow)
APIENTRY : API entry, 컴파일러에게 call 방식이 무엇인지 알려준다.
두 번째 인자는 예전에 사용하던 것이여서 그대로 인자로 적어놓고 있지만 사용하지 않는다.
LPSTR lpszCmdParam: 명령어 입력
int nCmdShow: 명령어 표시 여부를 선택하는 인자
WNDCLASS WndClass; 구조체이다. struct
g_hInst = hInstance; //사용한 인자를 전역변수에 복사함으로써 데이터 공유
응용프로그램 창에 커서를 올리면 운영체제에서 이벤트를 발생하여 응용프로그램에게 전달한다.
사용자가 운영체제에서 명령하는 메시지의 수가 CPU의 능력을 초과할 경우 메시지는 지속적으로 쌓이지 않고 기존 메시지에 덮어쓰게 된다.
FIFO(First In First Out): Queue 구조
FILA(First In Last Out): Stack 구조
실시간 처리 시스템은 1개 이상의 프로그램을 실행하지 못한다.
작성한 소스코드를 그대로 복사하여 Visual Studio에 붙힌다.
새로운 프로젝트를 생성하고 Visual C++에서 console이 아닌 project를 선택한다. 소스파일을 ‘main.c'이름으로 추가한다.
F5를 눌러 실행한다. 새로운 창이 뜨면 제대로 컴파일이 된 것이다. 새로운 창의 이름이 한자로 뜬다. 이것을 해결하기 위해 전역 변수 LPSTR lpszClass에 L을 추가해준다.
LPSTR lpszClass = L"First"
나머지 설명은 내일...
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151113 - WinAPI 두번째 시간 일지 엄민웅 (수업진도 4-1-다. WM_KEYDOWN 까지) (4) | 2015.11.13 |
---|---|
2015.11.13_개인업무일지_[Win32API #2]_이량경 (4) | 2015.11.13 |
20151112 - 강동조 API 개인 업무일지 (2) | 2015.11.13 |
20151113 김태현 WinAPI 1일차 기본문 분석 (3) | 2015.11.13 |
2015-11-12 Win32 API 개인 업무일지 - 천정호 (6) | 2015.11.13 |
20151112_주재민_API_01 (4) | 2015.11.13 |
20151112_임현수_업무일지_WIN32API#1 (6) | 2015.11.13 |
2015.11.12_개인업무일지_[Win32API #1]_이량경 (5) | 2015.11.13 |