Compartilhar via


Função GetModuleFileNameW (libloaderapi.h)

Recupera o caminho totalmente qualificado para o arquivo que contém o módulo especificado. O módulo deve ter sido carregado pelo processo atual.

Para localizar o arquivo de um módulo que foi carregado por outro processo, use a função GetModuleFileNameEx .

Sintaxe

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

Parâmetros

[in, optional] hModule

Um identificador para o módulo carregado cujo caminho está sendo solicitado. Se esse parâmetro for NULL, GetModuleFileName recuperará o caminho do arquivo executável do processo atual.

A função GetModuleFileName não recupera o caminho para módulos que foram carregados usando o sinalizador LOAD_LIBRARY_AS_DATAFILE . Para obter mais informações, consulte LoadLibraryEx.

[out] lpFilename

Um ponteiro para um buffer que recebe o caminho totalmente qualificado do módulo. Se o comprimento do caminho for menor do que o tamanho especificado pelo parâmetro nSize , a função terá êxito e o caminho será retornado como uma cadeia de caracteres terminada em nulo.

Se o comprimento do caminho exceder o tamanho especificado pelo parâmetro nSize , a função terá êxito e a cadeia de caracteres será truncada para caracteres nSize , incluindo o caractere nulo de terminação.

Windows XP: A cadeia de caracteres é truncada para caracteres nSize e não é terminada em nulo.

A cadeia de caracteres retornada usará o mesmo formato especificado quando o módulo foi carregado. Portanto, o caminho pode ser um nome de arquivo longo ou curto e pode usar o prefixo "\?". Para obter mais informações, confira Como nomear um arquivo.

[in] nSize

O tamanho do buffer lpFilename , em WCHARs.

Retornar valor

Se a função for bem-sucedida, o valor retornado será o comprimento da cadeia de caracteres copiada para o buffer, em caracteres, não incluindo o caractere nulo de terminação. Se o buffer for muito pequeno para manter o nome do módulo, a cadeia de caracteres será truncada para nSize caracteres , incluindo o caractere nulo de terminação, a função retornará nSize e a função definirá o último erro como ERROR_INSUFFICIENT_BUFFER.

Windows XP: Se o buffer for muito pequeno para manter o nome do módulo, a função retornará nSize e o último código de erro não será modificado. Se nSize for zero, o valor retornado será zero e o último código de erro não será modificado.

Se a função falhar, o valor retornado será zero (0). Para obter informações de erro estendidas, chame GetLastError.

Comentários

Se uma DLL for carregada em dois processos, seu nome de arquivo em um processo poderá ser diferente de seu nome de arquivo no outro processo.

A variável _pgmptr global é inicializada automaticamente para o caminho completo do arquivo executável e pode ser usada para recuperar o nome do caminho completo de um arquivo executável.

Exemplos

Para obter um exemplo, consulte Instalando um serviço.

Observação

O cabeçalho libloaderapi.h define GetModuleFileName como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho libloaderapi.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Funções de biblioteca de link dinâmico

GetModuleFileNameEx

Getmodulehandle

LoadLibrary

LoadLibraryEx