336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
API에 대해 공부하면서 배운 내용들을 간단하게 정리하고자 블로그를 개설하게 되었다.
개인적인 복습을 위해서 배웠던 내용들을 바로 정리하지는 않고 선등록 후 편집하는 과정을 거칠 것 같다.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
도스(DOS), 즉 Console 환경에서의 C 코드 중에서
아무 것도 출력하지 않고 프로그램을 종료하는 C 코드는 다음과 같다.
// Console
#include <stdio.h>
int main(void)
{
return 0;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
윈도우즈(Windows), GUI(Graphic User Interface) 환경에서도 위와 동일하게
창 안에 아무 것도 없고 종료하는 기능만을 가지는 벙어리 윈도우를 생성하는 코드를 작성할 수 있다.
다만 Console 환경과 비교했을 때, 코드의 길이와 양 자체는 비교할 수 없을 정도로 길고 많다.
// Windows
#include <Windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE g_hInst;
LPCTSTR IpszClass=TEXT("First");
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR IpszCmdParam, int nCmdShow)
{
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
g_hInst = hInstance;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); // WHITE_BRUSH BLACK_BRUSH
WndClass.hCursor=LoadCursor(NULL, IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL, IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName=IpszClass;
WndClass.lpszMenuName=NULL;
WndClass.style=CS_HREDRAW | CS_VREDRAW;
RegisterClass(&WndClass);
hWnd=CreateWindow(IpszClass, IpszClass, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hInstance, NULL);
ShowWindow(hWnd, SW_RESTORE); // nCmdShow
while (GetMessage(&Message, NULL, 0, 0)) {
TranslateMessage(&Message);
DispatchMessage(&Message);
}
return (int)Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
switch(iMessage) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_LBUTTONDOWN:
MessageBeep(0);
return 0;
}
return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
윈도우즈의 특징 및 장점
1. 그래픽 기반(GUI)의 운영체제
2. 멀티 태스킹
3. 메세지 구동 시스템
4. 장치독립성(Device Driver의 제공)
5. 일관성
6. 리소스와 코드의 분리
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
API(Application Programming Interface)
운영체제가 응용프로그램을 위해 제공하는 함수의 집합