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 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 que o tamanho que o parâmetro nSize especificar, 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 que o parâmetro nSize especificar, a função terá êxito e a cadeia de caracteres será truncada para nSize caracteres, incluindo o caractere nulo de terminação.

Windows XP: A cadeia de caracteres é truncada para nSize caracteres 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, consulte Nomeando um arquivo.

[in] nSize

O tamanho do buffer lpFilename , em WCHARs.

Valor de retorno

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 encerramento, a função retornará nSizee 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 for 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á 0 (zero). Para obter informações de erro estendidas, chame GetLastError.

Observações

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

A variável global _pgmptr é 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.

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

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

Consulte também

Funções da biblioteca Dynamic-Link

GetModuleFileNameEx

GetModuleHandle

LoadLibrary

LoadLibraryEx