728x90
윈도우 API
Microsoft Windows 운영체제에서 개발자가 응용프로그램을 작성할 때 사용하는
응용프로그램 인터페이스(Application Programming Interface)이다.
이 API는 Windows 운영체제와 상호작용을 하기 위한 기능을 제공하며, 응용프로그램이 하드웨어
파일시스템 그리고 그래픽등의 리소스에 접근하고 조작할 수 있도록 해준다.
이러한 윈도우 API의 동작방식은 일반적인 함수처럼 동작하며, 다음과 같이 이루어진다.
메시지 -> 메시지큐 -> 메시지 루프 -> 윈도우 프로시저
- 메시지 ( Message )
- 윈도우간의 통신에 사용되는 데이터 구조
- 응용 프로그램이나 운영체제로 부터 이벤트에 대한 알림을 받거나 작업을 요청, 응답 받는데 사용된다.
- 메시지 큐 ( Message Queue)
- 메시지의 데이터구조를 큐 형태로 보관하는 컨테이너
- FIFO (선입선출) 구조로 이루어지며, 이벤트에 대한 알림을 받았을때 등 메시지를 대기시키는 컨테이너이다.
- 메시지 루프 ( Message loop )
- 메시지를 윈도우 시스템에서 받아온 후, 해당되는 메시지를 알맞은 처리과정으로 전달하는 루프문.
- while를 통해 구현된다.
- 윈도우 프로시저 ( WIndow Procedure )
- 받아온 메시지를 원하는 데이터값으로 처리하기 위한 코드 를 말한다.
- 메시지에 해당하는 동작을 수행하고 필요한 경우, 조작이나 업데이트 등을 작업하는 코드뭉치이다.
윈도우 함수를 사용하여, 데이터를 처리하게 되는데.
이러한 함수를 사용하기 위해 문자열 타입을 지정해주어야 한다.
문자열 타입은 다음과 같다.
- LPSTR (Long Pointer To a String)
- LPSTR은 가변적 문자열 데이터를 가리키는 포인터 이다.
- long pointer str = char*
- 해당 포인터를 통해 문자열 데이터를 수정하거나 복사, 변경 작업을 수행한다.
- 주로 ANSI 문자열을 처리하는데 사용된다. [ ANSI 문자열은 1바이트로 각 문자를 표현, 영어 및 일부 특수문자를 표현할 수 있다. ]
- LPCSTR ( Long Pointer To a Const String )
- LPCSTR은 읽기 전용 상수 문자열 데이털르 가리키는 상수 포인터 이다.
- long pointer const str = const char*
- 해당 포인터를 통해 문자열 데이터를 수정할 수 없다. 그럼으로 읽기전용으로만 사용되기에. 안전하게 문자열 참조가 가능하다.
- 주로 ANSI 문자열을 처리하는데 사용되며, 읽거나 출력하는 작업에 활용된다.
- LPWSTR ( Long Pointer To a Wide String )
- LPWSTR은 가변적인 유니코드 문자열 데이터를 가리키는 포인터 이다.
- long pointer string = wchar_t*
- 해당 포인터를 통해 문자열 데이터를 수정하고, 복사 변경 하는 작업을 수행할 수 있다.
- 주로 유니코드 문자열을 처리하는데 사용되며, 다국어 문자 및 특수문자를 수정, 읽기, 출력 작업에 활용된다.
- LPCWSTR ( Long Pointer To a Const Wide String )
- LPCWSTR은 읽기 전용 상수 유니코드 문자열 데이터를 가리키는 상수 포인터 이다.
- long pointer const string = const wchar_t*
- 해당 포인터를 통해 문자열 데이터를 수정할 수 없다. 그럼으로 읽기전용으로만 사용되기에. 안전하게 문자열 참조가 가능하다.
- 주로 유니코드 문자열을 처리하는데 사용되며, 읽거나 출력하는 작업에 활용된다.
이러한 윈도우 API는 다음과 같은 스텍 정리구조를 가진다.
- STD_CALL
- 호출당한 함수에서 스텍을 정리한다.
728x90
'컴퓨터 용어 정리' 카테고리의 다른 글
Device Context (0) | 2023.07.13 |
---|---|
Delta_Time (0) | 2023.06.21 |
STL_AdapterContainer (0) | 2023.05.28 |
STL_AssociativeContainer (0) | 2023.05.28 |
STL_SequnceContainer (0) | 2023.05.28 |