LoadLibraryExA 関数 (libloaderapi.h)

指定したモジュールを呼び出し元プロセスのアドレス空間に読み込みます。 指定されたモジュールによって、他のモジュールが読み込まれる可能性があります。

構文

HMODULE LoadLibraryExA(
  [in] LPCSTR lpLibFileName,
       HANDLE hFile,
  [in] DWORD  dwFlags
);

パラメーター

[in] lpLibFileName

読み込むモジュールのファイル名を指定する文字列。 この名前は、モジュール定義 (.def) ファイルの LIBRARY キーワードで指定されているように、ライブラリ モジュール自体に格納されている名前とは関係ありません。

モジュールには、ライブラリ モジュール (.dll ファイル) または実行可能モジュール (.exe ファイル) を指定できます。 指定したモジュールが実行可能モジュールの場合、静的インポートは読み込まれません。代わりに、DONT_RESOLVE_DLL_REFERENCES が指定されたかのようにモジュールが読み込まれます。 詳細については、dwFlags パラメーターを参照してください。

文字列でパスのないモジュール名を指定し、ファイル名拡張子を省略すると、既定のライブラリ拡張機能 ".DLL" がモジュール名に追加されます。 関数がモジュール名に ".DLL" を追加しないようにするには、モジュール名の文字列に末尾のポイント文字 (.) を含めます。

文字列で完全修飾パスが指定されている場合、関数はそのパスのみを検索してモジュールを検索します。 パスを指定するときは、スラッシュ (/) ではなく円記号 (\) を使用してください。 パスの詳細については、「名前付けファイル、パス、および名前空間を参照してください。

文字列がパスのないモジュール名を指定し、読み込まれた複数のモジュールが同じベース名と拡張子を持つ場合、関数は最初に読み込まれたモジュールにハンドルを返します。

文字列でパスのないモジュール名を指定し、同じ名前のモジュールがまだ読み込まれていない場合、または文字列で相対パスを持つモジュール名を指定した場合、関数は指定されたモジュールを検索します。 この関数は、指定されたモジュールを読み込むと、システムが他の関連モジュール (つまり、モジュールに依存関係がある場合) を読み込む場合にも、モジュールを検索します。 検索されるディレクトリと検索順序は、指定されたパスと dwFlags パラメーターによって異なります。 詳細については、「解説」を参照してください。

関数がモジュールまたはその依存関係の 1 つを見つけられない場合、関数は失敗します。

hFile

このパラメーターは、将来使用するために予約されています。 これは NULLする必要があります。

[in] dwFlags

モジュールの読み込み時に実行するアクション。 フラグが指定されていない場合、この関数の動作は、LoadLibrary 関数の動作と同じです。 このパラメーターには、次のいずれかの値を指定できます。

価値 意味
DONT_RESOLVE_DLL_REFERENCES
0x00000001
この値が使用され、実行可能モジュールが DLL の場合、システムはプロセスとスレッドの初期化と終了のために dllMain 呼び出しません。 また、システムは、指定されたモジュールによって参照される追加の実行可能モジュールを読み込むことはありません。
この値は使用しないでください。これは下位互換性のためにのみ提供されます。 DLL 内のデータまたはリソースにのみアクセスする場合は、LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE または LOAD_LIBRARY_AS_IMAGE_RESOURCE またはその両方を使用します。 それ以外の場合は、LoadLibrary 関数を使用して、ライブラリを DLL または実行可能モジュールとして読み込みます。
 
LOAD_IGNORE_CODE_AUTHZ_LEVEL
0x00000010
この値を使用した場合、システムは AppLocker 規則 チェックしたり、DLL のソフトウェア制限ポリシー 適用したりしません。 このアクションは、読み込まれる DLL にのみ適用され、依存関係には適用されません。 この値は、インストール時に抽出された DLL を実行する必要があるセットアップ プログラムで使用することをお勧めします。

Windows Server 2008 R2 および Windows 7: KB2532445がインストールされているシステムでは、呼び出し元が "LocalSystem" または "TrustedInstaller" として実行されている必要があります。それ以外の場合、システムはこのフラグを無視します。 詳細については、https://support.microsoft.com/kb/2532445のヘルプおよびサポート サポート サポート 技術情報の「Windows 7 または Windows Server 2008 R2 を実行しているコンピューターで Office マクロを使用して AppLocker ルールを回避できます」を参照してください。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: AppLocker は、Windows 7 および Windows Server 2008 R2 で導入されました。

LOAD_LIBRARY_AS_DATAFILE
0x00000002
この値を使用すると、システムは、データ ファイルであるかのように、呼び出し元プロセスの仮想アドレス空間にファイルをマップします。 マップされたファイルの実行または実行の準備は何も行われません。 そのため、GetModuleFileName、GetModuleHandle 、この DLL で GetProcAddress を などの関数を呼び出すことはできません。 この値を使用すると、読み取り専用メモリへの書き込みがアクセス違反を発生させます。 DLL を読み込んでメッセージまたはリソースを抽出する場合にのみ、このフラグを使用します。

この値は、LOAD_LIBRARY_AS_IMAGE_RESOURCEと共に使用できます。 詳細については、「解説」を参照してください。

LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE
0x00000040
LOAD_LIBRARY_AS_DATAFILEと同様です。ただし、呼び出し元プロセスの排他的書き込みアクセス権で DLL ファイルが開かれている点が異なります。 他のプロセスでは、使用中に DLL ファイルを書き込みアクセス用に開くことができません。 ただし、DLL は引き続き他のプロセスによって開くことができます。

この値は、LOAD_LIBRARY_AS_IMAGE_RESOURCEと共に使用できます。 詳細については、「解説」を参照してください。

Windows Server 2003 および Windows XP: この値は、Windows Vista までサポートされていません。

LOAD_LIBRARY_AS_IMAGE_RESOURCE
0x00000020
この値を使用すると、システムはファイルをプロセスの仮想アドレス空間にイメージ ファイルとしてマップします。 ただし、ローダーは静的インポートを読み込んだり、他の通常の初期化手順を実行したりしません。 DLL を読み込んでメッセージまたはリソースを抽出する場合にのみ、このフラグを使用します。

アプリケーションがイメージのメモリ内レイアウトを持つファイルに依存しない限り、この値は LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE または LOAD_LIBRARY_AS_DATAFILEで使用する必要があります。 詳細については、「解説」セクションを参照してください。

Windows Server 2003 および Windows XP: この値は、Windows Vista までサポートされていません。

LOAD_LIBRARY_SEARCH_APPLICATION_DIR
0x00000200
この値を使用すると、アプリケーションのインストール ディレクトリで DLL とその依存関係が検索されます。 標準の検索パス内のディレクトリは検索されません。 この値を LOAD_WITH_ALTERED_SEARCH_PATHと組み合わせることはできません。

Windows 7、Windows Server 2008 R2、Windows Vista および Windows Server 2008: この値をインストールするには、KB2533623 が必要です。

Windows Server 2003 および Windows XP: この値はサポートされていません。

LOAD_LIBRARY_SEARCH_DEFAULT_DIRS
0x00001000
この値は、LOAD_LIBRARY_SEARCH_APPLICATION_DIRLOAD_LIBRARY_SEARCH_SYSTEM32、および LOAD_LIBRARY_SEARCH_USER_DIRSの組み合わせです。 標準の検索パス内のディレクトリは検索されません。 この値を LOAD_WITH_ALTERED_SEARCH_PATHと組み合わせることはできません。

この値は、アプリケーションが DLL 検索パスに含める必要があるディレクトリの推奨最大数を表します。

Windows 7、Windows Server 2008 R2、Windows Vista および Windows Server 2008: この値をインストールするには、KB2533623 が必要です。

Windows Server 2003 および Windows XP: この値はサポートされていません。

LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR
0x00000100
この値を使用すると、DLL を含むディレクトリが、DLL の依存関係を検索するディレクトリの一覧の先頭に一時的に追加されます。 標準の検索パス内のディレクトリは検索されません。

lpFileName パラメーターには、完全修飾パスを指定する必要があります。 この値を LOAD_WITH_ALTERED_SEARCH_PATHと組み合わせることはできません。

たとえば、Lib2.dll が C:\Dir1 でのみ C:\Dir1\Lib1.dll, loading Lib1.dll with this value causes the system to search for Lib2.dll の依存関係である場合です。 C:\Dir1 内の Lib2.dll と DLL 検索パス内のすべてのディレクトリを検索するには、この値を LOAD_LIBRARY_SEARCH_DEFAULT_DIRSと組み合わせます。

Windows 7、Windows Server 2008 R2、Windows Vista および Windows Server 2008: この値をインストールするには、KB2533623 が必要です。

Windows Server 2003 および Windows XP: この値はサポートされていません。

LOAD_LIBRARY_SEARCH_SYSTEM32
0x00000800
この値を使用すると、%windows%\system32 が DLL とその依存関係を検索します。 標準の検索パス内のディレクトリは検索されません。 この値を LOAD_WITH_ALTERED_SEARCH_PATHと組み合わせることはできません。

Windows 7、Windows Server 2008 R2、Windows Vista および Windows Server 2008: この値をインストールするには、KB2533623 が必要です。

Windows Server 2003 および Windows XP: この値はサポートされていません。

LOAD_LIBRARY_SEARCH_USER_DIRS
0x00000400
この値を使用すると、AddDllDirectory または SetDllDirectory 関数を使用して追加されたディレクトリが、DLL とその依存関係を検索します。 複数のディレクトリが追加されている場合、ディレクトリの検索順序は指定されません。 標準の検索パス内のディレクトリは検索されません。 この値を LOAD_WITH_ALTERED_SEARCH_PATHと組み合わせることはできません。

Windows 7、Windows Server 2008 R2、Windows Vista および Windows Server 2008: この値をインストールするには、KB2533623 が必要です。

Windows Server 2003 および Windows XP: この値はサポートされていません。

LOAD_WITH_ALTERED_SEARCH_PATH
0x00000008
この値を使用し、lpFileName 絶対パスを指定する場合、システムは、「解説」セクションで説明されている代替ファイル検索戦略を使用して、指定されたモジュールがロードされる原因となる関連する実行可能モジュールを検索します。 この値を使用し、lpFileName 相対パスを指定すると、動作は未定義になります。

この値を使用しない場合、または lpFileName がパスを指定しない場合、システムは、「解説」セクションで説明されている標準の検索方法を使用して、指定されたモジュールが読み込まれる原因となる関連する実行可能モジュールを検索します。

この値を LOAD_LIBRARY_SEARCH フラグと組み合わせることはできません。

LOAD_LIBRARY_REQUIRE_SIGNED_TARGET
0x00000080
読み込み時にバイナリ イメージのデジタル署名をチェックする必要があることを指定します。

この値には、Windows 8.1、Windows 10 以降が必要です。

LOAD_LIBRARY_SAFE_CURRENT_DIRS
0x00002000
この値を使用する場合、現在のディレクトリから実行する DLL の読み込みは、安全な読み込みリスト内のディレクトリの下にある場合にのみ許可されます。

戻り値

関数が成功した場合、戻り値は読み込まれたモジュールへのハンドルです。

関数が失敗した場合、戻り値は NULL。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

LoadLibraryEx 関数は、LoadLibrary 関数とよく似ています。 違いは、LoadLibraryEx が提供 オプションの動作のセットで構成されます。

  • LoadLibraryEx は、DLL の DllMain 関数を呼び出さずに DLL モジュールを読み込むことができます。
  • LoadLibraryEx は、モジュールが実行されない場合に最適化された方法でモジュールを読み込み、データ ファイルであるかのようにモジュールを読み込むことができます。
  • LoadLibraryEx では、2 つの検索方法のいずれかを使用してモジュールとそれに関連付けられているモジュールを検索できます。また、プロセス固有のディレクトリ セットを検索することもできます。
これらのオプションの動作を選択する場合は、dwFlags パラメーターを設定します。dwFlags 0 の場合、LoadLibraryEx は LoadLibraryと同じように動作します。

呼び出し元のプロセスでは、LoadLibraryEx によって返されるハンドルを使用して、GetProcAddressFindResource、および LoadResource 関数 の呼び出しでモジュールを識別できます。

DLL の読み込み中にローダーによって表示されるエラー メッセージを有効または無効にするには、SetErrorMode 関数を使用します。

DllMainから loadLibraryEx 呼び出しても安全ではありません。 詳細については、「DllMainの「解説」セクションを参照してください。

Visual C++: Visual C++ コンパイラでは、スレッド ローカル変数 (_declspec(スレッド)を宣言できる構文がサポートされています。 DLL でこの構文を使用する場合、Windows Vista より前のバージョンの Windows LoadLibraryEx を使用して DLL を明示的に読み込むことができなくなります。 DLL が明示的に読み込まれる場合は、_declspec(スレッド)の代わりにスレッド ローカル ストレージ関数を使用する必要があります。 例については、「ダイナミック リンク ライブラリでのスレッド ローカル ストレージの使用の 」を参照してください。

データ ファイルまたはイメージ リソースとして DLL を読み込む

LOAD_LIBRARY_AS_DATAFILELOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE、および LOAD_LIBRARY_AS_IMAGE_RESOURCE の値は、プロセスごとの参照カウントと、指定したモジュールの読み込みに影響します。 dwFlags パラメーターにこれらの値のいずれかが指定されている場合、ローダーは、モジュールが実行可能 DLL としてプロセスによって既に読み込まれているかどうかを確認します。 その場合は、モジュールが呼び出し元プロセスの仮想アドレス空間に既にマップされていることを意味します。 この場合、LoadLibraryEx は DLL へのハンドルを返し、DLL 参照カウントをインクリメントします。 DLL モジュールがまだ DLL として読み込まれていない場合、システムはモジュールを実行可能 DLL としてではなく、データまたはイメージ ファイルとしてマップします。 この場合、LoadLibraryEx は、読み込まれたデータまたはイメージ ファイルへのハンドルを返しますが、モジュールの参照カウントをインクリメントせず、CreateToolhelp32Snapshot や EnumProcessModules
などの関数にモジュールを表示しません。

LoadLibraryEx が、LOAD_LIBRARY_AS_DATAFILELOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE、または LOAD_LIBRARY_AS_IMAGE_RESOURCEを持つ同じファイルに対して 2 回呼び出されると、ファイルに対して 2 つの個別のマッピングが作成されます。

LOAD_LIBRARY_AS_IMAGE_RESOURCE 値を使用すると、ポータブル実行可能 (PE) セクション配置拡張を使用して、モジュールがイメージとして読み込まれます。 相対仮想アドレス (RVA) をディスク アドレスにマップする必要がないため、モジュールからリソースをより迅速に取得できます。 LOAD_LIBRARY_AS_IMAGE_RESOURCE を指定すると、モジュールの読み込み中に他のプロセスがモジュールを変更できなくなります。

アプリケーションが特定のイメージ マッピング特性に依存しない限り、LOAD_LIBRARY_AS_IMAGE_RESOURCE 値は LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE または LOAD_LIBRARY_AS_DATAFILEで使用する必要があります。 これにより、ローダーはモジュールをイメージ リソースとして読み込むかデータ ファイルとして読み込むかを選択し、システムがページをより効果的に共有できるようにするオプションを選択できます。 FindResource などのリソース関数では、どちらのマッピングも使用できます。

モジュールの読み込み方法を確認するには、次のいずれかのマクロを使用して、LoadLibraryExによって返されるハンドル テストします。

#define LDR_IS_DATAFILE(handle)      (((ULONG_PTR)(handle)) &  (ULONG_PTR)1)
#define LDR_IS_IMAGEMAPPING(handle)  (((ULONG_PTR)(handle)) & (ULONG_PTR)2)
#define LDR_IS_RESOURCE(handle)      (LDR_IS_IMAGEMAPPING(handle) || LDR_IS_DATAFILE(handle))

次の表では、これらのマクロについて説明します。

マクロ 形容
LDR_IS_DATAFILE(ハンドル) このマクロが TRUE返された場合、モジュールはデータ ファイル (LOAD_LIBRARY_AS_DATAFILE または LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE) として読み込まれました。
LDR_IS_IMAGEMAPPING(ハンドル) このマクロが TRUE返された場合、モジュールはイメージ ファイル (LOAD_LIBRARY_AS_IMAGE_RESOURCE) として読み込まれました。
LDR_IS_RESOURCE(ハンドル) このマクロが TRUE返された場合、モジュールはデータ ファイルまたはイメージ ファイルとして読み込まれました。
 

FreeLibrary 関数を使用して、読み込まれたモジュールを解放します。モジュールを読み込んだ場合に、その参照カウントがインクリメントされたかどうかに関係なく、 モジュールがデータまたはイメージ ファイルとして読み込まれた場合、マッピングは破棄されますが、参照カウントはデクリメントされません。 それ以外の場合は、DLL 参照カウントがデクリメントされます。 したがって、LoadLibraryExによって返されるハンドルを使用して、FreeLibrary を呼び出しても安全です。

DLL と依存関係の検索

検索パスは、DLL を検索するディレクトリのセットです。 LoadLibraryEx 関数は、標準の検索パスまたは変更された検索パスを使用して DLL を検索できます。または、SetDefaultDllDirectories で確立されたプロセス固有の検索パスを使用して、AddDllDirectory
関数 できます。 ディレクトリの一覧と検索順序については、「Dynamic-Link ライブラリ検索順序」を参照してください。

LoadLibraryEx 関数は、次の場合に標準の検索パスを使用します。

  • ファイル名はパスなしで指定され、ベース ファイル名は読み込まれたモジュールのベース ファイル名と一致せず、LOAD_LIBRARY_SEARCH フラグは使用されません。
  • パスは指定されていますが、LOAD_WITH_ALTERED_SEARCH_PATH は使用されません。
  • アプリケーションで、setDefaultDllDirectoriesを使用するプロセスの既定の DLL 検索パス 指定されていません。

lpFileName 相対パスを指定すると、相対パス全体が DLL 検索パス内のすべてのトークンに追加されます。 他のパスを検索せずに相対パスからモジュールを読み込むには、GetFullPathName を使用して非リレーショナル パスを取得し、非リレーショナル パス LoadLibraryEx を呼び出します。 モジュールがデータ ファイルとして読み込まれ、相対パスが "." または ".." で始まる場合、相対パスは絶対パスとして扱われます。

lpFileName が絶対パスを指定し、dwFlags LOAD_WITH_ALTERED_SEARCH_PATHに設定されている場合、LoadLibraryEx は変更された検索パスを使用 。 この動作は、LOAD_WITH_ALTERED_SEARCH_PATH フラグが設定されている場合は未定義であり、lpFileName 相対パスを指定します。

SetDllDirectory 関数を使用して、検索パスを変更できます。 このソリューションは、SetCurrentDirectory を使用するか、DLL への完全なパスをハードコーディングするよりも優れています。 ただし、SetDllDirectory を使用すると、指定したディレクトリが検索パスにあり、スレッド セーフではない間、安全な DLL 検索モードが効果的に無効になることに注意してください。 可能であれば、AddDllDirectory を使用して、既定のプロセス検索パスを変更することをお勧めします。 詳細については、「Dynamic-Link ライブラリの検索順序」を参照してください。

アプリケーションでは、LOAD_LIBRARY_SEARCH_* フラグを使用して、1 つの LoadLibraryEx 呼び出しを検索するディレクトリを指定できます。 複数の LOAD_LIBRARY_SEARCH フラグが指定されている場合、ディレクトリは次の順序で検索されます。

  • DLL (LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR) を含むディレクトリ。 このディレクトリは、読み込まれる DLL の依存関係のみを検索します。
  • アプリケーション ディレクトリ (LOAD_LIBRARY_SEARCH_APPLICATION_DIR)。
  • AddDllDirectory 関数 (LOAD_LIBRARY_SEARCH_USER_DIRS) または SetDllDirectory 関数を使用して、アプリケーション検索パスに明示的に追加されたパス。 複数のパスが追加されている場合、パスの検索順序は指定されません。
  • System32 ディレクトリ (LOAD_LIBRARY_SEARCH_SYSTEM32)。

Windows 7、Windows Server 2008 R2、Windows Vista および Windows Server 2008: KB2533623 がインストールされているシステムで LOAD_LIBRARY_SEARCH_ フラグを使用できます。 フラグが使用可能かどうかを判断するには、GetProcAddress を使用して、AddDllDirectory、RemoveDllDirectory、または SetDefaultDllDirectories 関数 アドレスを取得します。 GetProcAddress 成功した場合、LOAD_LIBRARY_SEARCH_ フラグを LoadLibraryEx使用できます。

アプリケーションが SetDefaultDllDirectories 関数を使用してプロセスの DLL 検索パスを確立し、LOAD_LIBRARY_SEARCH_* フラグが使用されていない場合、LoadLibraryEx 関数は標準検索パスではなくプロセス DLL 検索パスを使用します。

パスが指定されていて、アプリケーションに関連付けられているリダイレクト ファイルがある場合、loadLibraryEx 関数 は、アプリケーション ディレクトリ内のモジュールを検索します。 モジュールがアプリケーション ディレクトリに存在する場合、LoadLibraryEx パス指定は無視され、アプリケーション ディレクトリからモジュールが読み込まれます。 モジュールがアプリケーション ディレクトリに存在しない場合、関数は指定されたディレクトリからモジュールを読み込みます。 詳細については、「ダイナミック リンク ライブラリ リダイレクト」を参照してください。

パス指定のないアセンブリの名前 LoadLibraryEx を呼び出し、アセンブリがシステム互換マニフェストに一覧表示されている場合、呼び出しはサイド バイ サイド アセンブリに自動的にリダイレクトされます。

セキュリティに関する備考

LOAD_LIBRARY_AS_DATAFILE は、他のプロセスがモジュールの読み込み中にモジュールを変更することを妨げません。 これにより、アプリケーションの安全性が低下する可能性があるため、LOAD_LIBRARY_AS_DATAFILEを特に使用する必要がない限り、モジュールをデータ ファイルとして読み込むときに LOAD_LIBRARY_AS_DATAFILE の代わりに LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE を使用する必要があります。 LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE を指定すると、他のプロセスがモジュールの読み込み中にモジュールを変更できなくなります。 同じ呼び出しで LOAD_LIBRARY_AS_DATAFILELOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE を指定しないでください。

SearchPath 関数を使用して、後続の LoadLibraryEx 呼び出し DLL へのパスを取得しないでください。 SearchPath 関数は、LoadLibraryEx とは異なる検索順序を使用します。BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODEで SetSearchPathMode 呼び出して明示的に有効にしない限り、セーフ プロセス検索モードは使用しません。 そのため、SearchPath は、まずユーザーの現在の作業ディレクトリで指定された DLL を検索する可能性があります。 攻撃者が悪意のあるバージョンの DLL を現在の作業ディレクトリにコピーした場合、SearchPath によって取得されたパスが悪意のある DLL を指し示し、LoadLibraryEx 読み込まれます。

DLL を検索する LoadLibraryEx 呼び出しに基づいて、オペレーティング システムのバージョンを想定しないでください。 DLL が正当に存在しないが、DLL の悪意のあるバージョンが検索パスにある環境でアプリケーションが実行されている場合は、悪意のあるバージョンの DLL が読み込まれる可能性があります。 代わりに、「システム バージョンのの取得 」で説明されている推奨される手法を使用してください。

DLL のセキュリティに関する問題の一般的な説明については、「Dynamic-Link ライブラリ セキュリティ」を参照してください。

次のコード例は、LoadLibraryExAを する呼び出しを示しています。

//Load the FMAPI DLL
hLib = ::LoadLibraryEx(L"fmapi.dll", NULL, NULL);
if ( !hLib )
{
      wprintf(L"Could not load fmapi.dll, Error #%d.\n", GetLastError());
      return;
}

その他の例については、「エラー コード番号のテキストの検索」を参照してください。

手記

libloaderapi.h ヘッダーは、LoadLibraryEx をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルまたは実行時エラーが発生する不一致につながる可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー libloaderapi.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

DllMain

Dynamic-Link ライブラリ関数の

Dynamic-Link ライブラリの検索順序

Dynamic-Link ライブラリ セキュリティ

FindResource の

FreeLibrary

GetProcAddress の

GetSystemDirectory の

GetWindowsDirectory の

LoadLibrary

LoadResource の

OpenFile

動的リンク の Run-Time

SearchPath

SetDllDirectory

SetErrorMode の