뭐..세미나시간에 할 예기는 다 하겠지만 적어도 소스코드는 올려 두는게 편할꺼 같아서 글로 남김

---

맨날 콘솔 프로그래밍만 하다보니 어느 정도 공부했다면 무언가 좀 더 재미있는걸 만들어 보고 싶을텐데.. 사실 콘솔 프로그래밍으로 비주얼있는 게임을 구현하는게.. 무척 힘들지.. (특히 VC++6.0 으로 넘어오면 전멸에 가깝지 --;) 그래서 개인적으로는 터보C에 있는 그래픽 라이브러리를 건드려보기도 이상한 쇼를 해보았지만 무엇하나 만족할만한건 없었는데... 결국 창수형의 권유(?)로 windows API를 접해보게 되고.. 뭐.나름데로 재미있게 노는중 ㅋ

사실 이 수업은 기본적인 C언어를 알고 있다는 전제하에 하는 거지만 수업시간때 이해 안가는 부분이 있다면 그냥 질문해도 되고.. 뭐 아니면 MSN에서 말걸어도 설명해 줄께^^; 어쨋던 windows program이 돌아가는 원리는 대충. 책 구해서 보던(사발에 한권 있음) 아니면 http://www.winapi.co.kr 에서 확인하면되....물론 수업시간에는 설명을 해주겠지만.. ^^

뭐.. 사이트랑..책을 보면 다 나오는 내용이라 정리를 않하지만. 윈도우즈 API에 대한 이야기나 윈도우즈의 역사.. 동작 원리등은.. 어느 정도..숙지하는게 편할꺼야.. 뭐..그래도..어느정도...노가다 하다가 봐야 이해가 가겠지만 ..^^

일단..대략..코드 하나 던짐..

[CODE]#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { MessageBox(NULL, "내용", "제목", MB_OK); return 0; }[/CODE]

대략..이 코드는 별 내용 없고 메시지창..하나 뛰우는 기능.. 나머지는...일단 대략 무시하시길...머리아프니 ㅡㅡ;

물론..이걸로 할 수 있는거 아무것도 없음 ㅡㅡ; 언제나 윈도우즈는 제일 중요한 "윈도우"가 필요하다. 그래서 항상 API 처음 배울때 이.. "윈도우"를 뛰우는데에... 매우..고생 했음... 코드가..이해 안감은. 물론이고 대략...코딩 시간도 많이 걸림. ㅡㅡ; 지금도...외워쓰진 않고.. 대략.. 다 복사해서 쓴다 ㅡㅡ;

[CODE]#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)); }[/CODE]

위의 코드는 winapi.co.kr에서 잘라다 붙힌 소스.. 뭐 이정도만 되면 다른 windows program작성의 body가 되기에 충분하다 (물론 목적에 따라 이 코드가 비효율적일 수 있고 기본 원리만 이해하면 충분히 응용이 가능하다.) 뭐 일단 첫째날은..그 코드를 활용할수있는 수준 (사실 활용이라기 보다는 그냥.. 이걸 base로 쓸수있는 수준) 까지 익히는걸 목표로 하는데.. 물론 이 것 이상으로 할수 있는 사람도 있을 것이고. .이거까지 하기 힘든 사람도 있을 텐데..집에서.꼭 익혀 두고 내일 만났으면 ~~ 한다.
Posted by PJH=파덕
:
BLOG main image
파덕이의 꿈바라기
PJH's Homepage by PJH=파덕

카테고리

분류 전체보기 (197)
잡담 (106)
일본 이야기 (21)
천문학 이야기 (0)
(old)잡담 (36)
(old)물건 이야기 (3)
(old)J-Pop 이야기 (6)
(old)천문학 이야기 (5)
(old)컴퓨터 이야기 (7)
(old)유럽축구 이야기 (12)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2025/04   »
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
Total :
Today : Yesterday :