1. ホーム
  2. windows

[解決済み] WIN32_LEAN_AND_MEANを定義すると、具体的に何が除外されるのですか?

2022-01-26 21:20:34

質問

以下のような説明がありました。 WIN32_LEAN_AND_MEAN "使用頻度の低いAPIを除外することで、Win32ヘッダーファイルのサイズを縮小します"。 . どこかで、ビルドプロセスをスピードアップさせるというのを読みました。

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

また、extra leanという名前のプリプロセッサーディレクティブをプロジェクトで見たことがあります。 これも私が知っておくべき難解なプリプロセッサの呪文なのでしょうか?

どのように解決するのですか?

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 Headersは、以下のものを提供します。 は、次のような新しい定義があります。

VC_EXTRALEAN
WIN32_LEAN_AND_MEAN

Win32のヘッダーファイルのサイズを小さくするために使用することができます。

最後に、これらのプリプロセッサ定義のいずれかを使用して、必要な何かが欠けている場合、その特定のヘッダーファイルを自分でインクルードすることができます。MSDNに目的の関数名を入力すると、通常、ページの一番下に、どのヘッダーを使用すればよいかを教えてくれる項目が表示されます。