this soru jalf sorusunun birinde, NOMINMAX
numaralı yararlı tanım hakkında, istenmeyen tanımlama min/maks makroları önleyebilir. windows.h
(veya Microsoft C Çalışma Zamanı üstbilgileri veya STL uygulaması gibi başka Windows başlıkları) davranışını denetlemeye yardımcı olabilecek başka yararlı tanımlar var mı?Windows üstbilgileri nasıl uyuşur (yararlı tanımlar)?
cevap
En çok kullanılan, muhtemelen WIN32_LEAN_AND_MEAN
- API'nın nadiren kullanılan bölümlerini devre dışı bırakır. MSDN'in Using the Windows Headers üzerinde daha fazlasını bulabilirsiniz.
Ben, işte o tanımlarınızı listeleme MSDN hakkında yanlış hatırlanan windows.h gelen liste:
/* 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
*/
Bağlantı sadece WIN32_LEAN_AND_MEAN'dan söz eden makaleye yönlendiriyor. Yanlış link? –
Hm, NOxxx tanımlarını listeliyor. Bu listeyi dahil etmek için cevabımı düzenlerim. –
Makale ayrıca, windows.h dosyasına daha fazla makro için bakmayı söylüyor. ("Destek NOapi sembollerinin bir listesi için, bkz. Windows.h") Tam bir referans dokümantasyon olduğunu düşünmüyorum. – jalf
MFC projeler WIN32_LEAN_AND_MEAN
beri VC_EXTRALEAN
zaten MFC tarafından tanımlanır kullanabilirsiniz. Ayrıca enabling STRICT'u da öneririm.
Ugh. Win32 platformunda min ve max'ın bu saçmalıklarında yarım saat harcadım. – Tim