답변:
Windows.h 헤더 파일에서 직접 :
#ifndef WIN32_LEAN_AND_MEAN
#include <cderr.h>
#include <dde.h>
#include <ddeml.h>
#include <dlgs.h>
#ifndef _MAC
#include <lzexpand.h>
#include <mmsystem.h>
#include <nb30.h>
#include <rpc.h>
#endif
#include <shellapi.h>
#ifndef _MAC
#include <winperf.h>
#include <winsock.h>
#endif
#ifndef NOCRYPT
#include <wincrypt.h>
#include <winefs.h>
#include <winscard.h>
#endif
#ifndef NOGDI
#ifndef _MAC
#include <winspool.h>
#ifdef INC_OLE1
#include <ole.h>
#else
#include <ole2.h>
#endif /* !INC_OLE1 */
#endif /* !MAC */
#include <commdlg.h>
#endif /* !NOGDI */
#endif /* WIN32_LEAN_AND_MEAN */
각 헤더의 실제 기능을 알고 싶다면 MSDN 라이브러리 의 검색에 헤더 이름을 입력 하면 일반적으로 해당 헤더 파일의 함수 목록이 생성됩니다.
또한,에서 마이크로 소프트의 지원 페이지 :
빌드 프로세스 속도를 높이기 위해 Visual C ++ 및 Windows 헤더는 다음과 같은 새로운 정의를 제공합니다.
VC_EXTRALEAN
WIN32_LEAN_AND_MEAN이를 사용하여 Win32 헤더 파일의 크기를 줄일 수 있습니다.
마지막으로, 이러한 전 처리기 정의 중 하나를 사용하기로 선택했는데 필요한 것이 누락 된 경우 해당 헤더 파일을 직접 포함시킬 수 있습니다. MSDN에 함수 이름을 입력하면 일반적으로 페이지 하단에 사용하려는 헤더를 포함하는 항목이 생성됩니다.
Windows Dev Center 에 따르면 WIN32_LEAN_AND_MEAN은 암호화, DDE, RPC, 셸 및 Windows 소켓과 같은 API를 제외합니다.
winsock2.h
더 잘 정의 해야 합니다. 그래서 나는 여기에 빠진 세부 사항을 추가하기 때문에 다른 대답이 더 좋습니다. 특히 그것은 그 정의의 실제 효과가 무엇인지 보여줍니다. 둘 다 앵무새 문서에 대한 답변을 제공하지만 다른 하나는 더 포괄적입니다. 비록 둘 다 define (WinSock 이름 충돌 등)을 사용하지 않는다는 "반향"에 대해서는 언급하지 않습니다. WIN32_LEAN_AND_MEAN