본문 바로가기

Win32 api

Win32 api 강의 1화.

https://www.youtube.com/playlist?list=PL4SIC1d_ab-ZLg4TvAO5R4nqlJTyJXsPK

 

Win32 API 무료강의

 

www.youtube.com

 

유튜브에 무료강의가 있길래 참고함..


일단 비주얼 스튜디오에서 새 프로젝트를 생성한다. 

영상에서는 데스크톱 어플리케이션 템플릿으로 생성한다. 

다른 블로그나 문서를 찾아보면 데스크톱 마법사로 생성하라고 설명되어 있는데

차이점이 뭔지는 모르겠다. 

영상은 게임 프로그래밍을 설명하기 때문일 듯?

 

그 외에 달리 세팅할 것은 없다.

코드 분석

일단 프로젝트를 생성하면 윈도우에서 자동으로 생성해주는 코드가 와라락 나옴.

이번 강의의 목적은 해당 코드에 대한 개략적인 이해다.

 

코드의 시작은 역시 main 함수이다. win32 api 에서는 WinMain 이라고 따로 이름을 부르는 듯.

_In_ 이런식으로 나오는 것은 일종의 주석이며, SAL Annotation 이라고 한다.

마이크로소프트 개발자들이 해당 파라미터에 대한 설명을 키워드 형태의 주석으로 남긴 것이라고 보면 되며,

F12 를 눌러보면 sal.h 헤더 파일에 많이 나와 있는데 자세히 알 필요는 없음.

WCHAR 같은 처음보는 타입들도 그냥 개발자들이 typedef 를 통해 이름 바꿔놓은 거임.

 

비주얼 스튜디오에서 "리소스 뷰" 라는 창에 들어가서 String Table 이라는 걸 눌러보면

대충 이런 테이블이 나옴. 첫번째는 제목이고, 두번째는 ID 를 윈도우에서 자동으로 세팅해 놓음.

이걸 LoadStringW 라는 함수를 통해 

미리 전역 변수로 설정된 WCHAR 배열인 szTitle, szWindowClass 에 집어 넣는다. 

 

그냥 윈도우에서 자동으로 보기좋게 미리 세팅해놓은 것 같다. 타이틀을 바꾸고 싶으면 테이블에서 직접 바꿔도 되고

밑에 InitInstance 함수에서 szTitle 자리에 L"" 형태로 집어 넣어도 된다.

 

szWindowClass 는 일종의 ID 값처럼 쓰여서

MyRegisterClass 에서 윈도우 정보를 입력할 때 쓰이는 듯. 여기서 id 를 등록하고

CreateWindowW 함수를 호출할 때 해당 id 로 호출한다고 보면 되겠다. 

 

전체적으로 복잡한 코드같아 보이고 코드 양도 많지만,

실제 수행하는 일은 빈 윈도우 창 하나 딸깍 생성하는 게 끝.

'Win32 api' 카테고리의 다른 글

Win32 api 강의 6화.  (0) 2025.09.11
Win32 api 강의 5화.  (0) 2025.09.11
Win32 api 강의 4화.  (0) 2025.09.10
Win32 api 강의 3화.  (0) 2025.09.10
Win32 api 강의 2화.  (0) 2025.09.09