LoadLibraryExW 関数 (libloaderapi.h)

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

構文

HMODULE LoadLibraryExW(
  [in] LPCWSTR lpLibFileName,
       HANDLE  hFile,
  [in] DWORD   dwFlags
);

パラメーター

[in] lpLibFileName

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

モジュールには、ライブラリ モジュール (.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
この値を使用すると、システムは、データ ファイルであるかのように、ファイルを呼び出し元プロセスの仮想アドレス空間にマップします。 マップされたファイルを実行または実行するための準備は何も行われません。 そのため、この DLL で GetModuleFileNameGetModuleHandleGetProcAddress などの関数を呼び出すことはできません。 この値を使用すると、読み取り専用メモリへの書き込みによってアクセス違反が発生します。 このフラグは、DLL からメッセージまたはリソースを抽出するためにのみ読み込む場合に使用します。

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

LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE
0x00000040
呼び出し元のプロセスに対する排他的な書き込みアクセス権を持つ DLL ファイルが開かれている点を除き、 LOAD_LIBRARY_AS_DATAFILEと同様です。 他のプロセスでは、使用中に 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\Lib1.dll の依存関係である場合、この値を使用して Lib1.dll を読み込むと、システムは C:\Dir1 でのみ Lib2.dll を検索します。 C:\Dir1 の Lib2.dll と DLL 検索パス内のすべてのディレクトリを検索するには、この値を LOAD_LIBRARY_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 10以降のWindows 8.1が必要です。

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

戻り値

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

関数が失敗した場合は、返される値は NULL です。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

LoadLibraryEx 関数は、LoadLibrary 関数とよく似ています。 違いは、 LoadLibraryEx によって提供される一連のオプションの動作で構成されます。

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

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

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

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

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

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

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

LOAD_LIBRARY_AS_DATAFILE、LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE、またはLOAD_LIBRARY_AS_IMAGE_RESOURCEを持つ同じファイルに対して LoadLibraryEx を 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(handle) このマクロが TRUE を返す場合、モジュールはデータ ファイル (LOAD_LIBRARY_AS_DATAFILE または LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE) として読み込まれました。
LDR_IS_IMAGEMAPPING(handle) このマクロが TRUE を返す場合、モジュールはイメージ ファイル (LOAD_LIBRARY_AS_IMAGE_RESOURCE) として読み込まれました。
LDR_IS_RESOURCE(handle) このマクロが TRUE を返す場合、モジュールはデータ ファイルまたはイメージ ファイルとして読み込まれました。
 

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

DLL と依存関係の検索

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

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

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

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

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

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

アプリケーションでは、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: LOAD_LIBRARY_SEARCH_ フラグは、KB2533623がインストールされているシステムで使用できます。 フラグが使用可能かどうかを判断するには、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 のセキュリティに関する問題の一般的な説明については、「 ダイナミック リンク ライブラリのセキュリティ」を参照してください。

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

注意

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

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー libloaderapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

DllMain

ダイナミック リンク ライブラリ関数

ダイナミックリンク ライブラリの検索順序

ダイナミック リンク ライブラリのセキュリティ

Findresource

FreeLibrary

GetProcAddress

GetSystemDirectory

GetWindowsDirectory

LoadLibrary

LoadResource

OpenFile

実行時の動的リンク

SearchPath

SetDllDirectory

SetErrorMode