201

WIN32_LEAN_AND_MEAN 「使用頻度の低い API の一部を除外することで、Win32 ヘッダー ファイルのサイズを縮小する」という定義の説明を見つけました。他のどこかで、ビルドプロセスが高速化されると読みました。

では、正確に何WIN32_LEAN_AND_MEANを除外しますか? このプリプロセッサ ディレクティブを気にする必要がありますか? ビルドプロセスをスピードアップしますか?

また、エクストラ リーンに沿った名前のプロジェクトでプリプロセッサ ディレクティブを見たこともあります。これは、知っておくべき別の難解なプリプロセッサの呪文ですか?

4

3 に答える 3

189

Windows Dev Centerによると、WIN32_LEAN_AND_MEAN は暗号化、DDE、RPC、シェル、Windows ソケットなどの API を除外します。

于 2012-06-14T19:41:35.597 に答える
186

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ライブラリの検索にヘッダー名を入力すると、通常、そのヘッダー ファイル内の関数のリストが生成されます。

また、Microsoftのサポートページから:

ビルド プロセスを高速化するために、Visual C++ と Windows ヘッダーには次の新しい定義が用意されています。

VC_EXTRALEAN
WIN32_LEAN_AND_MEAN

これらを使用して、Win32 ヘッダー ファイルのサイズを縮小できます。

最後に、これらのプリプロセッサ定義のいずれかを使用することを選択し、必要なものが不足している場合は、その特定のヘッダー ファイルを自分で含めることができます。目的の関数の名前を MSDN に入力すると、通常、ページの下部に、使用する場合に含めるヘッダーを示すエントリが生成されます。

于 2012-06-14T19:45:49.603 に答える