2009-09-08 25 views
16

this प्रश्न jalf के उत्तर में से एक में NOMINMAX को परिभाषित करने के बारे में बात की गई, जो अवांछित परिभाषित न्यूनतम/अधिकतम मैक्रोज़ से रोक सकती है। क्या अन्य उपयोगी परिभाषाएं हैं जो windows.h (या अन्य विंडोज हेडर, उदाहरण के लिए माइक्रोसॉफ़्ट सी रनटाइम हेडर या एसटीएल कार्यान्वयन) को नियंत्रित करने में मदद कर सकती हैं?विंडोज हेडर को कैसे खराब करें (उपयोगी परिभाषित)?

+4

उह। मैंने मिनट के इस बकवास पर आधा घंटा बर्बाद कर दिया और Win32 मंच पर अधिकतम। – Tim

उत्तर

23

सबसे अधिक इस्तेमाल किया जाने वाला शायद WIN32_LEAN_AND_MEAN है - यह API के शायद ही कभी उपयोग किए गए हिस्सों को अक्षम करता है। आप एमएसडीएन के 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 में देखने के लिए कहता है। ("समर्थन की सूची के लिए नोएपी प्रतीकों, विंडोज़ देखें") मुझे नहीं लगता कि कोई पूर्ण संदर्भ दस्तावेज है। – jalf

3

MFC परियोजनाओं का उपयोग कर सकते VC_EXTRALEANWIN32_LEAN_AND_MEAN के बाद से पहले से ही MFC द्वारा परिभाषित किया गया है। मैं enabling STRICT भी अनुशंसा करता हूं।

संबंधित मुद्दे