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.dllAssinatura
DWORD FormatMessageW(
DWORD dwFlags,
LPCVOID lpSource,
DWORD dwMessageId,
DWORD dwLanguageId,
LPWSTR lpBuffer,
DWORD nSize,
va_list * Arguments
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| dwFlags | DWORD | FORMAT_MESSAGE_FROM_SYSTEM, FORMAT_MESSAGE_ALLOCATE_BUFFER, etc. |
| lpSource | LPCVOID | Módulo contendo a tabela de mensagens, se aplicável. |
| dwMessageId | DWORD | Código de erro a formatar. |
| dwLanguageId | DWORD | Idioma desejado, ou 0 para o padrão do sistema. |
| lpBuffer | LPWSTR | Recebe a mensagem formatada (ou um ponteiro alocado, com FORMAT_MESSAGE_ALLOCATE_BUFFER). |
| nSize | DWORD | Tamanho de `lpBuffer`, ou tamanho mínimo a alocar. |
| Arguments | va_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.