次の方法で共有


GetModuleFileNameA 関数 (libloaderapi.h)

指定したモジュールを含むファイルの完全修飾パスを取得します。 モジュールは、現在のプロセスによって読み込まれている必要があります。

別のプロセスによって読み込まれたモジュールのファイルを見つけるには、GetModuleFileNameEx 関数を使用します。

構文

DWORD GetModuleFileNameA(
  [in, optional] HMODULE hModule,
  [out]          LPSTR   lpFilename,
  [in]           DWORD   nSize
);

パラメーター

[in, optional] hModule

パスが要求されている読み込まれたモジュールへのハンドル。 このパラメーターが NULL場合、GetModuleFileName 現在のプロセスの実行可能ファイルのパスを取得

GetModuleFileName 関数は、LOAD_LIBRARY_AS_DATAFILE フラグを使用して読み込まれたモジュールのパスを取得しません。 詳細については、「LoadLibraryExを参照してください。

[out] lpFilename

モジュールの完全修飾パスを受け取るバッファーへのポインター。 パスの長さが、nSize パラメーターが指定したサイズより小さい場合、関数は成功し、パスは null で終わる文字列として返されます。

パスの長さが、nSize パラメーターが指定したサイズを超えると、関数は成功し、終端の null 文字を含む nSize 文字 に文字列が切り捨てられます。

Windows XP: 文字列は nSize 文字 に切り捨てられ、null で終わるわけではありません。

返される文字列は、モジュールの読み込み時に指定されたのと同じ形式を使用します。 そのため、パスには長いファイル名または短いファイル名を指定でき、プレフィックス \\?\を使用できます。 詳細については、「ファイルの名前付け」を参照してください。

[in] nSize

lpFilename バッファーのサイズ (TCHAR)。

戻り値

関数が成功した場合、戻り値はバッファーにコピーされる文字列の長さ (終端の null 文字を含まない文字) です。 バッファーが小さすぎてモジュール名を保持できなければ、文字列は終端の null 文字を含む nSize 文字 に切り捨てられ、関数は nSize返し、関数は最後のエラーを ERROR_INSUFFICIENT_BUFFERに設定します。

Windows XP: バッファーが小さすぎてモジュール名を保持するには、関数は nSize返します。 最後のエラー コードは引き続き ERROR_SUCCESS。 nSize 0 の場合、戻り値は 0 で、最後のエラー コードは ERROR_SUCCESS

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

備考

DLL が 2 つのプロセスで読み込まれる場合、一方のプロセスのファイル名が、もう一方のプロセスのファイル名と異なる場合があります。

_pgmptr グローバル変数は、実行可能ファイルの完全なパスに自動的に初期化され、実行可能ファイルの完全なパス名を取得するために使用できます。

例については、「サービスのインストール」を参照してください。

手記

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

必要条件

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

関連項目

Dynamic-Link ライブラリ関数の

GetModuleFileNameEx の

GetModuleHandle を する

LoadLibrary

LoadLibraryEx