2012-06-14 12 views
106

Znalazłem wyjaśnienie definiujące WIN32_LEAN_AND_MEAN "zmniejsza rozmiar plików nagłówkowych Win32, wykluczając niektóre z rzadziej używanych interfejsów API". Gdzieś czytałem, że przyspiesza to proces budowania.Co dokładnie #defining WIN32_LEAN_AND_MEAN wyklucza?

Co dokładnie wyklucza WIN32_LEAN_AND_MEAN? Czy powinienem dbać o tę dyrektywę pre-procesorową? Czy przyspiesza proces budowania?

Widziałem również dyrektywę preprocesora w projektach o nazwie coś w rodzaju dodatkowego chudego. Czy to kolejna ezoteryczna inkantacja preprocesora, o której powinienem wiedzieć?

Odpowiedz

101

bezpośrednio z pliku nagłówka 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 */ 

jeśli chcesz wiedzieć, co każdy z nagłówków faktycznie, typeing nazwy nagłówka do poszukiwania w bibliotece MSDN zazwyczaj produkują listę funkcje w tym pliku nagłówkowym.

Również z Microsoft's support page:

Aby przyspieszyć proces kompilacji, Visual C++ i nagłówki okna zapewniają następujące nowe określa:

VC_EXTRALEAN
WIN32_LEAN_AND_MEAN

Można ich używać do zmniejszyć rozmiar plików nagłówkowych Win32.

Na koniec, jeśli zdecydujesz się użyć jednego z tych preprocesorów i brakuje czegoś, możesz sam dołączyć ten konkretny plik nagłówkowy. Wpisanie nazwy funkcji, której szukasz do MSDN, zwykle spowoduje utworzenie pozycji, która wskaże nagłówek, który chcesz uwzględnić, jeśli chcesz go użyć, na dole strony.

58

Zgodnie z Windows Dev Center WIN32_LEAN_AND_MEAN nie obejmuje interfejsów API, takich jak kryptografia, DDE, RPC, Shell i Windows Sockets.

+7

Myślę, że jest to zwięzła odpowiedź, której większość z nas szukała. –

Powiązane problemy