Voltar à lista
Windows Win32Sistema & móduloskernel32.dll

FormatMessageW

Converte um código de erro numérico (do sistema ou de um módulo específico) em uma mensagem de texto legível.

Descrição

Equivalente funcional a `strerror(3)` do Linux, mas capaz de formatar mensagens com argumentos inseridos e de consultar tabelas de mensagens de módulos específicos (não apenas erros do sistema).

Header: winbase.hDLL: kernel32.dll

Assinatura

DWORD FormatMessageW(
    DWORD dwFlags,
    LPCVOID lpSource,
    DWORD dwMessageId,
    DWORD dwLanguageId,
    LPWSTR lpBuffer,
    DWORD nSize,
    va_list * Arguments
);

Parâmetros

ParâmetroTipoDescrição
dwFlagsDWORDFORMAT_MESSAGE_FROM_SYSTEM, FORMAT_MESSAGE_ALLOCATE_BUFFER, etc.
lpSourceLPCVOIDMódulo contendo a tabela de mensagens, se aplicável.
dwMessageIdDWORDCódigo de erro a formatar.
dwLanguageIdDWORDIdioma desejado, ou 0 para o padrão do sistema.
lpBufferLPWSTRRecebe a mensagem formatada (ou um ponteiro alocado, com FORMAT_MESSAGE_ALLOCATE_BUFFER).
nSizeDWORDTamanho de `lpBuffer`, ou tamanho mínimo a alocar.
Argumentsva_list *Argumentos para inserção na mensagem, se ela contiver placeholders.

Valor de retorno

Número de caracteres escritos (sem o nulo) em sucesso; 0 em erro (consulte GetLastError).

Códigos de erro (GetLastError)

ERROR_INSUFFICIENT_BUFFER(122)
O buffer de dados é pequeno demais.

Relacionadas