Langsung dari file header 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 */
jika Anda ingin tahu apa yang sebenarnya dilakukan masing-masing header, mengetikkan nama header ke dalam pencarian di perpustakaan MSDN biasanya akan menghasilkan daftar fungsi dalam file header itu.
Juga, dari halaman dukungan Microsoft :
Untuk mempercepat proses pembuatan, Visual C ++ dan Windows Headers memberikan definisi baru berikut:
VC_EXTRALEAN
WIN32_LEAN_AND_MEAN
Anda dapat menggunakannya untuk mengurangi ukuran file header Win32.
Akhirnya, jika Anda memilih untuk menggunakan salah satu dari definisi preprocessor ini, dan sesuatu yang Anda butuhkan hilang, Anda bisa memasukkan sendiri file header tertentu itu. Mengetik nama fungsi yang Anda cari di MSDN biasanya akan menghasilkan entri yang akan memberi tahu Anda header mana yang harus dimasukkan jika Anda ingin menggunakannya, di bagian bawah halaman.
George yang penasaran
sumber
winsock2.h
Anda lebih baik pastikanWIN32_LEAN_AND_MEAN
selalu ditentukan karena jika tidak, Anda akan mendapatkan deklarasi yang bertentangan antara versi WinSock. Jadi saya suka jawaban yang lain lebih baik, karena menambahkan detail yang hilang di sini. Khususnya itu menunjukkan apa efek sebenarnya dari definisi itu. Keduanya menjawab dokumentasi burung beo dan yang lainnya lebih komprehensif, meskipun keduanya gagal menyebutkan "dampak" dari tidak menggunakan define (WinSock name clash dll).