Funzione GetModuleFileNameA (libloaderapi.h)

Recupera il percorso completo per il file contenente 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 al modulo caricato il cui percorso viene richiesto. Se questo parametro è NULL, GetModuleFileName recupera il percorso del file eseguibile del processo corrente.

La funzione GetModuleFileName non recupera il percorso per i moduli caricati usando il flag di LOAD_LIBRARY_AS_DATAFILE . Per altre informazioni, vedere LoadLibraryEx.

[out] lpFilename

Puntatore a un buffer che riceve il percorso completo del modulo. Se la lunghezza del percorso è minore delle dimensioni specificate 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 caratteri nSize , incluso il carattere Null di terminazione.

Windows XP: La stringa viene troncata a caratteri nSize e non viene terminata con null.

La stringa restituita userà lo stesso formato specificato quando il modulo è stato caricato. Pertanto, il percorso può essere un nome di file lungo o breve e può usare il prefisso \\?\. Per altre informazioni, vedere Denominazione di un 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, non incluso il carattere Null di terminazione. Se il buffer è troppo piccolo per contenere il nome del modulo, la stringa viene troncata a caratteri nSize , incluso il carattere null terminante, la funzione restituisce nSize e 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 informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Se una DLL viene caricata in due processi, il nome del file in un processo può essere diverso dal nome del file nell'altro processo.

La variabile globale viene inizializzata automaticamente nel percorso completo del file eseguibile _pgmptr e può essere usata per recuperare il nome completo di un file eseguibile.

Esempio

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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

   
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione libloaderapi.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Funzioni della libreria di collegamento dinamico

GetModuleFileNameEx

GetModuleHandle

LoadLibrary

LoadLibraryEx