Partager via


GetModuleFileNameW, fonction (libloaderapi.h)

Récupère le chemin complet du fichier qui contient le module spécifié. Le module doit avoir été chargé par le processus actuel.

Pour localiser le fichier d’un module chargé par un autre processus, utilisez la fonction GetModuleFileNameEx.

Syntaxe

DWORD GetModuleFileNameW(
  [in, optional] HMODULE hModule,
  [out]          LPWSTR  lpFilename,
  [in]           DWORD   nSize
);

Paramètres

[in, optional] hModule

Handle du module chargé dont le chemin d’accès est demandé. Si ce paramètre est NULL, GetModuleFileName récupère le chemin du fichier exécutable du processus actuel.

La fonction GetModuleFileName ne récupère pas le chemin d’accès des modules chargés à l’aide de l’indicateur LOAD_LIBRARY_AS_DATAFILE. Pour plus d’informations, consultez LoadLibraryEx.

[out] lpFilename

Pointeur vers une mémoire tampon qui reçoit le chemin complet du module. Si la longueur du chemin d’accès est inférieure à la taille spécifiée par le paramètre nSize, la fonction réussit et le chemin est retourné sous la forme d’une chaîne terminée par null.

Si la longueur du chemin dépasse la taille spécifiée par le paramètre nSize, la fonction réussit et la chaîne est tronquée pour nSize caractères, y compris le caractère null de fin.

Windows XP : La chaîne est tronquée pour nSize caractères et n’est pas terminée par null.

La chaîne retournée utilise le même format que celui spécifié lors du chargement du module. Par conséquent, le chemin d’accès peut être un nom de fichier long ou court et peut utiliser le préfixe « \ ? ». Pour plus d’informations, consultez nommage d’un fichier.

[in] nSize

Taille de la mémoire tampon lpFilename, dans WCHARs .

Valeur de retour

Si la fonction réussit, la valeur de retour est la longueur de la chaîne copiée dans la mémoire tampon, en caractères, sans inclure le caractère null de fin. Si la mémoire tampon est trop petite pour contenir le nom du module, la chaîne est tronquée pour nSize caractères, y compris le caractère null de fin, la fonction retourne nSize, et la fonction définit la dernière erreur sur ERROR_INSUFFICIENT_BUFFER.

Windows XP : Si la mémoire tampon est trop petite pour contenir le nom du module, la fonction retourne nSize et le dernier code d’erreur n’est pas modifié. Si nSize est égal à zéro, la valeur de retour est égale à zéro et le dernier code d’erreur n’est pas modifié.

Si la fonction échoue, la valeur de retour est 0 (zéro). Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

Si une DLL est chargée dans deux processus, son nom de fichier dans un processus peut différer du nom de son fichier dans l’autre processus.

La variable globale _pgmptr est automatiquement initialisée dans le chemin d’accès complet du fichier exécutable et peut être utilisée pour récupérer le nom complet du chemin d’accès d’un fichier exécutable.

Exemples

Pour obtenir un exemple, consultez Installation d’un service.

Note

L’en-tête libloaderapi.h définit GetModuleFileName comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2003 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête libloaderapi.h (include Windows.h)
bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

fonctions de bibliothèque Dynamic-Link

GetModuleFileNameEx

GetModuleHandle

LoadLibrary

loadLibraryEx