본문 바로가기

반응형

C#/Windows

(5)
WndProc으로 Windows Message 제어하기 Windows Message 여기서 말하는 Message는 MessageBox에 출력되는 문자열이 아니다. Message는 Windows 안에서 이용되는 구조체이다. Windows는 그 안에 값들을 담아서 자신이 제어할 대상에 보낸다. 예를 들어 윈도우즈를 이용하는 사람이 메모장을 실행한 상태에서 키보드의 키를 누르면 윈도우즈는 이 키에 대한 여러 값들 즉 어떤 문자에 해당하는 키인지 키를 누른 건지 뗀 건지 등을 넣어서 메모장의 편집 영역으로 보낸다. Windows로 메시지를 보낼 땐 SendMessage와 PostMessage 함수를 쓴다. 이것들은 win32 api에 들어있다. 전자는 메시지를 윈도우즈로 보내는 거다. 처리가 오래 걸리면 프로시저가 멈추지만 이를 감수하고라도 바로 처리해야 할 때 쓴..
윈도우 프로그래밍 동작 방식 구성 요소 메세지(Message) 메세지 큐(Message Queue) 메세지 루프(Message Loop) 윈도우 프로시저(Windows Procedure) 메시지(Message) 메시지는 윈도우에 발생하는 모든 이벤트(사건)을 의미합니다. 키보드로 입력하고, 마우스로 클릭하는 것 뿐만 아니라, 마우스가 이동하는 등의 사소한 이벤트들을 모두 메시지로 관리합니다. 윈도우 내에서 발생하는 대부분의 이벤트들은 이미 미리 정의가 되어 있습니다. 그렇다면 개발자들이 이런 사소한 이벤트들을 모두 코드로 관리해야할까요? 당연히 그렇지 않습니다. 각 윈도우에 어떤 사건이 발생하는지 지속적으로 확인하고 메시지로 만들어서 처리하는 것은 모두 운영체제의 역할입니다. 윈도우 내에 어떤 사건이 발생하면 운영체제는 메시지를 만..
Win32 API에서 제공하는 자료형 개요 우리가 C, Python 등 평소에 자주 사용하는 프로그래밍 언어에서 쓰이는 int, double과 같은 자료형을 사용하면 변수가 어떤 의미를 갖고 있는지 파악하기 어렵다. 때문에 Windows API는 자료형을 특정한 이름으로 재정의해서 변수의 자료형을 보고 어떤 특성이 있는지 한눈에 알아볼 수 있도록 제공하고 있다. 자료형 이름 의미 BOOL Boolean (True 혹은 False) LPSTR 문자열을 위한 32bit 포인터 UNIT 16bit unsigned int (Win32는 32bit) WORD 16bit unsigned int DWORD 32bit unsigned int / 세그먼트의 주소 혹은 offset LONG 32bit unsigned int WPARAM 16bit(Win32는..
Win64 API가 있나요? Q. If I'm correct, Win32 is adapting or has been adapted to cope with 64 bit windows, for example, GetWindowLongPtr on 64 bit as opposed to GetWindowLong on 32 bit. Will there be a Win64 Api, and if so, is there any indication on when the transition will happen? I'm not very knowledgeable on this subject so I apologize if I have anything obvious wrong. Thanks in advance, ell. A. This transition ..
Windows API Linux는 커널 소스가 공개되어 있어, 굳이 언어적으로 건들이지 않아도 사용자가 자유롭게 건드릴 수 있다. 하지만 Windows는 그렇지 못하기 때문에 어떻게 어떤 방법으로 Kernel에 접근해야할지 몰라 고민하다 Windows API라는 것을 알게 됐다. API(Application Programming Interface) 라이브러리와 비슷하게 사용되지만, 개념은 전혀 다르다. 집합으로 보자면, API는 Library에 속한다. API는 라이브러리를 이용해서 어떤 규칙을 만들고, 그것을 개발자에게 제공한다. OS와 사용자 사이에 의사소통을 위해 Shell이 존재한다면, OS와 응용 프로그램 사이 통신에는 API가 존재한다. Windows API Windows API는 Microsoft의 Windows..

반응형