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 .
Sintaks
DWORD GetModuleFileNameA(
[in, optional] HMODULE hModule,
[out] LPSTR lpFilename,
[in] DWORD nSize
);
Parameter
[in, optional] hModule
Handel ke modul yang dimuat yang jalurnya sedang 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 yang dihentikan null.
Jika panjang jalur melebihi ukuran yang ditentukan parameter nSize , fungsi berhasil dan string dipotok menjadi karakter nSize termasuk karakter null yang mengakhiri.
Windows XP: String dipotok menjadi karakter nSize dan tidak dihentikan null.
String yang dikembalikan akan menggunakan format yang sama yang ditentukan saat modul dimuat. Oleh karena itu, jalur dapat menjadi nama file yang panjang atau pendek, dan dapat menggunakan awalan \\?\
. Untuk informasi selengkapnya, lihat Penamaan File.
[in] nSize
Ukuran buffer lpFilename , dalam TCHAR.
Menampilkan 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 menjadi 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, hubungi GetLastError.
Keterangan
Jika DLL dimuat dalam dua proses, nama filenya dalam satu proses mungkin berbeda jika dari nama filenya dalam proses lain.
Variabel _pgmptr
global 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.
Catatan
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
Klien minimum yang didukung | Windows XP [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | libloaderapi.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk