byidev.com
Framework (2)
2023-05-18 16:57:52

1. 자료형 (Data type)

BOOL Boolean ( True or False)
LPSTR 문자열 위한 32bit 포인터
UNIT unsigned int 16bit (Win32 32bit)
WORD unsigned int 16bit
DWORD unsigned int 32bit / segment address or offset
LONG signed int 32bit
WPARAM 프로시저에 전달되는 매개변수, 콜백함수 16bit
LPARAM 프로시저에 전달되는 매개변수, 콜백함수 32bit
HANDLE unsigned int / object handle
HWND unsigned int / windows handle
HINSTANCE unsigned int / instance handle

2. 핸들 (Handle)

2-1. 개요

 - 운영체제는 리소스를 안전하게 관리하기 위해 직접 주소를 사용하는 포인터 대신 핸들을 사용.

 - 핸들이란 운영체제 내부 리소스의 주소를 정수 (32bit or 64bit)로 치환한 값.

 - HANDLE이란 오브젝트의 주소를 나타내는 자료형.

 - 일반적 리소스 핸들로 파일 서술자, 네트워크 소켓, 데이터베이스 연결, 프로세스 식별자(PID)등이 있다.

2-2. 특징

 - 중복을 허용하지 않는다.

 - 운영체제가 발급, 사용자는 사용. (사용자 생성 불가)

 - H로 시작하는 접두어를 가진다.

2-3. 핸들, 포인터 비교

 - 포인터는 참조 대상의 주소를 갖는 반면, 핸들은 외부 관리 참조를 추상화한 것.

 - 핸들은 무효화 시키지 않고 참조 대상이 시스템에 의해 메모리에서 재배치될 수 있게 해준다.

 - 간접 참조 여분의층 또한 관리하는 시스템의 동작이 할 수 있는 제어를 증가시킴.


3. ETC

 - C 표준 I/O 라이브러리에서 파일 데이터 구조체는 파일 핸들(UNIX에서는 파일 서술자).

 - 윈도우 API도 객체를 나타내며, 운영 체제와 사용자 공간과의 통신을 위해 핸들을 사용.

2023-05-18 16:16:13

1. API & MFC

1-1. 인터페이스

 - 인터페이스는 서로 다른 두 개의 시스템이나 장치 사이에서 정보나 신호를 주고 받는 접점, 경계면.

 - 정보의 교환은 하드웨어, 소프트웨어, 주변장치, 사용자 등

 - UI(User Interface), GUI(Graphic User Interface)등.

1-2. API

 - API(Application programming interface)는 컴퓨터 프로그램이 서로 통신하는 방법.

 - API는 어플리케이션을 만들기 위한 개발자와 프로그램 사이의 접점.

 - 운영체제, 프로그래밍 언어에서 제공하는 프로그램을 개발자가 사용할 수 있도록 역할.

 - Windows API는 SDK(Software Development Kit)을 이용해 프로그램을 작성할 수 있도록 만든 API.

1-3. MFC

 - MFC(Microsoft Foundation Class Library)는 Windows API의 C++ 버전.

 - 클래스로 구현되어 API보다 객체지향적으로 프로그래밍 가능하도록 설계.

 - 객체가 없어지면(메모리 할당 끝나면) 자동으로 핸들을 해제하는 것이 특징.


2. Windows Programing

 윈도우 프로그래밍의 동작의 구성 요소는 다음의 4가지와 같다.

 - 메세지 (Message)

 - 메세지 큐 (Message Queue)

 - 메세지 루프 (Message Loop)

 - 윈도우 프로시저 (Window Procedure)

2-1. 메시지(Message)

 - 메시지는 윈도우에 발생하는 모든 이벤트(사건)을 의미.

 - 키보드 입력, 마우스 클릭, 이동 등 사소한 이벤트를 메시지로 관리.

 - 위와 같은 이벤트들은 윈도우 내에 정의되어 있음.

2-2. 메시지 큐(Message Queue)

 - 운영체제가 만들어낸 메시지는 메시지 큐에 저장.

 - FIFO 구조로 선입 선출 처리.

 - 메시지들은 매크로 상수로 변환되어 큐에 저장.

2-3. 메시지 루프(Message Loop)

 - 메시지 큐의 메시지를 읽어, 처리하기 위해 윈도우 프로시저로 전송하는 반복문.

 - 메시지에 따라 알맞은 형태로 변환 후 윈도우 프로시저로 전송.

2-4. 윈도우 프로시저(Window Procedure)

 - 메시지 루프로부터 변환된 메시지를 수신.

 - 메시지를 사전 정의된 내용에 따라 처리하는 함수.

 - 개발자는 프로시저의 메시지 처리방식을 정의 해 프로그램을 개발.


3. GDI

 - Windows API에서 제공하는 Graphic Device Interface.

 - GDI는 디바이스에 상관없이 주어진 내용을 출력 할 수 있는 함수들을 의미.

 - 함수와 디바이스 드라이브가 해상도, 크기 등을 조절 해 사용자의 편의성 제공.