this質問jalfについての回答の1つでは、望ましくない最小/最大マクロの定義を防ぐことができるNOMINMAX
を定義します。 windows.h
(または他のWindowsヘッダー、たとえばMicrosoft CランタイムヘッダーまたはSTLの実装)の動作を制御するのに役立つ有用な定義はありますか?Windowsヘッダー(有用な定義)を守る方法は?
答えて
最も一般的に使用されるのはおそらくWIN32_LEAN_AND_MEAN
です。これは、ほとんど使用されないAPIの部分を無効にします。 MSDNのUsing the Windows Headersで詳細を見つけることができます。
私はので、ここでWINDOWS.Hからのリストだ、MSDNには、それらの定義をリストについて間違って覚えて:WIN32_LEAN_AND_MEAN
は既にMFCで定義されているので
/* 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
*/
リンクは、WIN32_LEAN_AND_MEANのみの記事につながります。間違ったリンク? –
うーん、私はそれがNOxxxを定義していますが定義します。私はそのリストを含めるために私の答えを編集します。 –
この記事では、windows.hでより多くのマクロを検索する方法についても説明しています。 ( "サポートNOapiシンボルの一覧については、Windows.hを参照してください。) 完全なリファレンスドキュメントはありません。 – jalf
MFCプロジェクトはVC_EXTRALEAN
を使用することができます。私もenabling STRICTをお勧めします。
私はwin32プラットフォーム上でこのminとmaxのナンセンスで30分を無駄にしました。 – Tim