2009-09-08 13 views
16

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)?

+4

Ugh. Win32 platformunda min ve max'ın bu saçmalıklarında yarım saat harcadım. – Tim

cevap

23

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 
*/ 
+0

Bağlantı sadece WIN32_LEAN_AND_MEAN'dan söz eden makaleye yönlendiriyor. Yanlış link? –

+0

Hm, NOxxx tanımlarını listeliyor. Bu listeyi dahil etmek için cevabımı düzenlerim. –

+0

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

3

MFC projeler WIN32_LEAN_AND_MEAN beri VC_EXTRALEAN zaten MFC tarafından tanımlanır kullanabilirsiniz. Ayrıca enabling STRICT'u da öneririm.

İlgili konular