2009-09-08 2 views
16

this 질문에 대한 대답 jalf에 대해 유용하다고 정의 된 NOMINMAX을 정의하면 원하지 않는 최대/최소 매크로 정의를 방지 할 수 있습니다. windows.h (또는 다른 Windows 헤더 (예 : Microsoft C 런타임 헤더 또는 STL 구현) 동작을 제어하는 ​​데 유용한 다른 유용한 정의가 있습니까?Windows 헤더를 길들이는 방법 (유용한 정의)?

+4

어. Win32 플랫폼에서 30 분을 낭비했습니다. – Tim

답변

23

가장 일반적으로 사용되는 숫자는 WIN32_LEAN_AND_MEAN이며 API의 거의 사용되지 않는 부분은 사용할 수 없습니다. MSDN의 Using the Windows Headers에서 자세한 내용을 확인할 수 있습니다.

나는, 그래서 여기에 그 정의를 나열 MSDN에 대한 잘못된 기억 WINDOWS.H에서 목록입니다 :

/* If defined, the following flags inhibit definition 
*  of the indicated items. 
* 
* NOGDICAPMASKS  - CC_*, LC_*, PC_*, CP_*, TC_*, RC_ 
* NOVIRTUALKEYCODES - VK_* 
* NOWINMESSAGES  - WM_*, EM_*, LB_*, CB_* 
* NOWINSTYLES  - WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_* 
* NOSYSMETRICS  - SM_* 
* NOMENUS   - MF_* 
* NOICONS   - IDI_* 
* NOKEYSTATES  - MK_* 
* NOSYSCOMMANDS  - SC_* 
* NORASTEROPS  - Binary and Tertiary raster ops 
* NOSHOWWINDOW  - SW_* 
* OEMRESOURCE  - OEM Resource values 
* NOATOM   - Atom Manager routines 
* NOCLIPBOARD  - Clipboard routines 
* NOCOLOR   - Screen colors 
* NOCTLMGR   - Control and Dialog routines 
* NODRAWTEXT  - DrawText() and DT_* 
* NOGDI    - All GDI defines and routines 
* NOKERNEL   - All KERNEL defines and routines 
* NOUSER   - All USER defines and routines 
* NONLS    - All NLS defines and routines 
* NOMB    - MB_* and MessageBox() 
* NOMEMMGR   - GMEM_*, LMEM_*, GHND, LHND, associated routines 
* NOMETAFILE  - typedef METAFILEPICT 
* NOMINMAX   - Macros min(a,b) and max(a,b) 
* NOMSG    - typedef MSG and associated routines 
* NOOPENFILE  - OpenFile(), OemToAnsi, AnsiToOem, and OF_* 
* NOSCROLL   - SB_* and scrolling routines 
* NOSERVICE   - All Service Controller routines, SERVICE_ equates, etc. 
* NOSOUND   - Sound driver routines 
* NOTEXTMETRIC  - typedef TEXTMETRIC and associated routines 
* NOWH    - SetWindowsHook and WH_* 
* NOWINOFFSETS  - GWL_*, GCL_*, associated routines 
* NOCOMM   - COMM driver routines 
* NOKANJI   - Kanji support stuff. 
* NOHELP   - Help engine interface. 
* NOPROFILER  - Profiler interface. 
* NODEFERWINDOWPOS - DeferWindowPos routines 
* NOMCX    - Modem Configuration Extensions 
*/ 
+0

링크는 WIN32_LEAN_AND_MEAN 만 언급 된 기사로 연결됩니다. 잘못된 링크? –

+0

흠, 나는 그것이 NOxxx가 정의하는 목록이지만. 나는 그 목록을 포함시키기 위해 나의 대답을 편집 할 것이다. –

+0

이 기사에서는 windows.h에서 매크로를 더 찾는다 고 말합니다. ("지원 NOapi 기호 목록은 Windows.h를 참조하십시오.) 완전한 참조 설명서가 있다고 생각하지 않습니다. – jalf

3

MFC 프로젝트 WIN32_LEAN_AND_MEAN 이후 VC_EXTRALEAN가 이미 MFC에 의해 정의 할 수 있습니다. enabling STRICT도 좋습니다.

관련 문제