Win32 / #include를 하기 전에…

Win32 프로그래밍을 하기 위해 필수적으로 포함해야 하는 <Windows.h>는 사실 잡다한 다른 매크로나 헤더를 많이 가지고 있습니다. 이는 컴파일 타임을 늘리기도 하고 특히 템플릿 문법이 없는 C를 위해 추가된 min/max 매크로는 C++에서 Win32를 다룰 때 여러 에러를 만들기도 합니다.

그런 사유로 다음과 같이 <Windows.h>헤더를 포함하기 전에 위에 다음 매크로를 선언하는 것이 좋습니다. 프로그램 내부적으로 헤더를 하나 만들어서 거기다가 모든 선언과 윈도우 헤더를 포함한 뒤 필요한 파일에서 그 헤더를 포함하면 헤더가 꼬이거나 아래 매크로를 파일마다 중복으로 쓰는 상황을 방지할 수 있습니다.

app_def.h
#ifndef NOMINMAX
#define NOMINMAX
#endif

#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN
#endif

#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif

#include <Windows.h>
C++

다음은 NOMINMAX와 비슷하게 사용할 수 있는 다른 매크로 목록입니다.

다음은 WIN32_LEAN_AND_MEAN 매크로가 제외시키는 헤더들의 목록입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다