Funzione GetModuleFileNameA (libloaderapi.h)
Recupera il percorso completo per il file che contiene il modulo specificato. Il modulo deve essere stato caricato dal processo corrente.
Per individuare il file per un modulo caricato da un altro processo, usare la funzione getModuleFileNameEx
Sintassi
DWORD GetModuleFileNameA(
[in, optional] HMODULE hModule,
[out] LPSTR lpFilename,
[in] DWORD nSize
);
Parametri
[in, optional] hModule
Handle per il modulo caricato il cui percorso viene richiesto. Se questo parametro è NULL, GetModuleFileName recupera il percorso del file eseguibile del processo corrente.
La funzione GetModuleFileName
[out] lpFilename
Puntatore a un buffer che riceve il percorso completo del modulo. Se la lunghezza del percorso è minore della dimensione specificata dal parametro nSize, la funzione ha esito positivo e il percorso viene restituito come stringa con terminazione Null.
Se la lunghezza del percorso supera le dimensioni specificate dal parametro nSize, la funzione ha esito positivo e la stringa viene troncata a nSize caratteri, incluso il carattere Null di terminazione.
Windows XP: La stringa viene troncata a caratteri nSize e non termina con null.
La stringa restituita userà lo stesso formato specificato al caricamento del modulo. Pertanto, il percorso può essere un nome di file lungo o breve e può usare il prefisso \\?\
. Per altre informazioni, vedere Naming a File.
[in] nSize
Dimensioni del buffer lpFilename, in TCHAR.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è la lunghezza della stringa copiata nel buffer, in caratteri, senza includere il carattere Null di terminazione. Se il buffer è troppo piccolo per contenere il nome del modulo, la stringa viene troncata ai caratteri nSize inclusi il carattere Null di terminazione, la funzione restituisce nSizee la funzione imposta l'ultimo errore su ERROR_INSUFFICIENT_BUFFER.
Windows XP: Se il buffer è troppo piccolo per contenere il nome del modulo, la funzione restituisce nSize. L'ultimo codice di errore rimane ERROR_SUCCESS. Se nSize è zero, il valore restituito è zero e l'ultimo codice di errore è ERROR_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è 0 (zero). Per ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
Se una DLL viene caricata in due processi, il nome del file in un processo può differire dal nome del file nell'altro processo.
La variabile globale _pgmptr
viene inizializzata automaticamente nel percorso completo del file eseguibile e può essere usata per recuperare il nome completo del percorso di un file eseguibile.
Esempi
Per un esempio, vedere Installazione di un servizio.
Nota
L'intestazione libloaderapi.h definisce GetModuleFileName come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows XP [app desktop | App UWP] |
server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
libloaderapi.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |
Vedere anche
Funzioni della libreria Dynamic-Link