Bagikan melalui


Fungsi GetModuleFileNameA (libloaderapi.h)

Mengambil jalur yang sepenuhnya memenuhi syarat untuk file yang berisi modul yang ditentukan. Modul harus dimuat oleh proses saat ini.

Untuk menemukan file untuk modul yang dimuat oleh proses lain, gunakan fungsi GetModuleFileNameEx.

Sintaksis

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

Parameter

[in, optional] hModule

Handel ke modul yang dimuat yang jalurnya diminta. Jika parameter ini NULL, GetModuleFileName mengambil jalur file yang dapat dieksekusi dari proses saat ini.

Fungsi GetModuleFileName tidak mengambil jalur untuk modul yang dimuat menggunakan bendera LOAD_LIBRARY_AS_DATAFILE. Untuk informasi selengkapnya, lihat LoadLibraryEx.

[out] lpFilename

Penunjuk ke buffer yang menerima jalur modul yang sepenuhnya memenuhi syarat. Jika panjang jalur kurang dari ukuran yang ditentukan parameter nSize, fungsi berhasil dan jalur dikembalikan sebagai string null-terminated.

Jika panjang jalur sama atau melebihi nilai yang ditentukan oleh nSize, fungsi berhasil dan string dipotong menjadi karakter nSize (termasuk karakter null yang mengakhiri).

Windows XP: String dipotong untuk karakter nSize dan tidak dihentikan null.

String yang dikembalikan akan menggunakan format yang sama yang ditentukan saat modul dimuat. Oleh karena itu, jalur dapat berupa nama file panjang atau pendek, dan dapat menggunakan awalan \\?\. Untuk informasi selengkapnya, lihat Penamaan File.

[in] nSize

Ukuran buffer lpFilename , dalam TCHAR.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan adalah panjang string yang disalin ke buffer, dalam karakter, tidak termasuk karakter null yang mengakhiri. Jika buffer terlalu kecil untuk menahan nama modul, string dipotong untuk karakter nSize termasuk karakter null yang mengakhiri, fungsi mengembalikan nSize, dan fungsi mengatur kesalahan terakhir ke ERROR_INSUFFICIENT_BUFFER.

Windows XP: Jika buffer terlalu kecil untuk menahan nama modul, fungsi mengembalikan nSize. Kode kesalahan terakhir tetap ERROR_SUCCESS. Jika nSize adalah nol, nilai yang dikembalikan adalah nol dan kode kesalahan terakhir adalah ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan adalah 0 (nol). Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.

Komentar

Jika DLL dimuat dalam dua proses, nama filenya dalam satu proses mungkin berbeda jika terjadi dengan nama filenya di proses lain.

Variabel global _pgmptr secara otomatis diinisialisasi ke jalur lengkap file yang dapat dieksekusi, dan dapat digunakan untuk mengambil nama jalur lengkap file yang dapat dieksekusi.

Contoh

Misalnya, lihat Menginstal Layanan.

Nota

Header libloaderapi.h mendefinisikan GetModuleFileName sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Platform Target Windows
Header libloaderapi.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

Fungsi Pustaka Dynamic-Link

GetModuleFileNameEx

GetModuleHandle

LoadLibrary

LoadLibraryEx