Windows API 기본 개념
Windows API는 Windows 운영체제가 제공하는 강력한 기능을 애플리케이션에서 사용할 수 있도록 돕는 함수들의 집합
이걸 잘 다루면, 윈도우 시스템을 더 깊이 이해하고 제어함
1. DLL (Dynamic-Link Library)
- DLL은 여러 프로그램이 공통으로 사용할 수 있는 함수나 리소스를 모아둔 파일입니다.
- 대표적인 예: user32.dll, kernel32.dll
- DLL은 프로그램이 실행될 때 필요할 때만 메모리에 로드되어, 프로그램 크기를 줄이고, 메모리를 효율적으로 사용할 수 있습니다.
- Go에서 DLL 함수를 호출하려면 syscall이나 golang.org/x/sys/windows 패키지를 사용합니다.
2. 시스템 호출 (System Call)
- 시스템 호출은 운영체제가 제공하는 커널 기능을 사용하는 함수 호출입니다.
- 예를 들어, 파일 읽기/쓰기, 프로세스 생성, 메모리 할당 같은 작업이 시스템 호출로 이루어집니다.
- Windows API는 내부적으로 시스템 호출을 감싸는 래퍼 함수라고 볼 수 있습니다.
예를 들어, GetCursorPos는 user32.dll의 API지만, 결국 커널에서 마우스 위치 데이터를 가져옵니다.
3. 메시지 루프 (Message Loop)
- Windows는 이벤트 기반 시스템이라, 키보드 입력, 마우스 클릭 같은 이벤트는 '메시지'로 전달됩니다.
- 메시지 루프는 프로그램이 종료될 때까지 메시지를 계속 확인하고 처리하는 역할을 합니다.
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
4. 핸들 (Handle)
- 핸들은 Windows에서 다양한 객체(창, 파일, 프로세스 등)를 가리키는 고유한 ID입니다.
- 예를 들어, FindWindow API는 창의 핸들을 반환합니다. 이후 이 핸들로 창을 조작할 수 있습니다.
'Go > window_api' 카테고리의 다른 글
[Go] Windows API - 창 핸들 찾기 (0) | 2025.03.05 |
---|---|
[Go] Windows API - 마우스, 화면, 시스템 상태까지 확인 (0) | 2025.03.05 |
[Go] Windows API - 시스템 해상도 가져오기 (0) | 2025.03.05 |
[Go] Windows API - 메시지 박스 (0) | 2025.03.05 |
[Go] Windows API - 마우스 커서 위치 찾기 (0) | 2025.03.05 |