Función GetModuleFileNameA (libloaderapi.h)
Recupera la ruta de acceso completa del archivo que contiene el módulo especificado. El proceso actual debe haber cargado el módulo.
Para buscar el archivo de un módulo cargado por otro proceso, use la función getModuleFileNameEx
Sintaxis
DWORD GetModuleFileNameA(
[in, optional] HMODULE hModule,
[out] LPSTR lpFilename,
[in] DWORD nSize
);
Parámetros
[in, optional] hModule
Identificador del módulo cargado cuya ruta de acceso se solicita. Si este parámetro es NULL, GetModuleFileName recupera la ruta de acceso del archivo ejecutable del proceso actual.
La función
[out] lpFilename
Puntero a un búfer que recibe la ruta de acceso completa del módulo. Si la longitud de la ruta de acceso es menor que el tamaño que especifica el parámetro nSize, la función se realiza correctamente y la ruta de acceso se devuelve como una cadena terminada en null.
Si la longitud de la ruta de acceso supera el tamaño especificado por el parámetro nSize, la función se realiza correctamente y la cadena se trunca para nSize caracteres, incluido el carácter nulo de terminación.
Windows XP: La cadena se trunca en nSize caracteres y no está terminada en null.
La cadena devuelta usará el mismo formato que se especificó cuando se cargó el módulo. Por lo tanto, la ruta de acceso puede ser un nombre de archivo largo o corto y puede usar el prefijo \\?\
. Para obtener más información, vea Asignar nombre a un archivo.
[in] nSize
Tamaño del búfer de lpFilename, en TCHAR.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es la longitud de la cadena que se copia en el búfer, en caracteres, sin incluir el carácter nulo de terminación. Si el búfer es demasiado pequeño para contener el nombre del módulo, la cadena se trunca para nSize caracteres, incluido el carácter nulo de terminación, la función devuelve nSizey la función establece el último error en ERROR_INSUFFICIENT_BUFFER.
Windows XP: Si el búfer es demasiado pequeño para contener el nombre del módulo, la función devuelve nSize. El último código de error permanece ERROR_SUCCESS. Si nSize es cero, el valor devuelto es cero y el último código de error es ERROR_SUCCESS.
Si se produce un error en la función, el valor devuelto es 0 (cero). Para obtener información de error extendida, llame a GetLastError.
Observaciones
Si un archivo DLL se carga en dos procesos, su nombre de archivo en un proceso puede diferir en caso de que su nombre de archivo en el otro proceso.
La variable global _pgmptr
se inicializa automáticamente en la ruta de acceso completa del archivo ejecutable y se puede usar para recuperar el nombre de ruta de acceso completa de un archivo ejecutable.
Ejemplos
Para obtener un ejemplo, consulte Instalación de un servicio.
Nota
El encabezado libloaderapi.h define GetModuleFileName como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
libloaderapi.h (incluya Windows.h) |
biblioteca de |
Kernel32.lib |
DLL de |
Kernel32.dll |
Consulte también
funciones de biblioteca de