次の方法で共有


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

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

戻り値

関数が成功した場合、戻り値はバッファーにコピーされる文字列の長さ (終端の 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 アプリ]
対象プラットフォーム Windows
ヘッダー libloaderapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

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

GetModuleFileNameEx

GetModuleHandle

LoadLibrary

LoadLibraryEx