Compartilhar via


Função wsprintfW (winuser.h)

Grava dados formatados no buffer especificado. Todos os argumentos são convertidos e copiados para o buffer de saída de acordo com a especificação de formato correspondente na cadeia de caracteres de formato. A função acrescenta um caractere nulo de terminação aos caracteres que grava, mas o valor retornado não inclui o caractere nulo de encerramento em sua contagem de caracteres.

Observação Não usar. Considere usar uma das seguintes funções em vez disso: StringCbPrintf, StringCbPrintfEx, StringCchPrintfou StringCchPrintfEx. Confira as considerações de segurança.
 

Sintaxe

int WINAPIV wsprintfW(
  [out] LPWSTR  unnamedParam1,
  [in]  LPCWSTR unnamedParam2,
        ...     
);

Parâmetros

[out] unnamedParam1

Tipo: LPTSTR

O buffer que deve receber a saída formatada. O tamanho máximo do buffer é de 1.024 bytes.

[in] unnamedParam2

Tipo: LPCTSTR

As especificações de controle de formato. Além dos caracteres ASCII comuns, uma especificação de formato para cada argumento aparece nesta cadeia de caracteres. Para obter mais informações sobre a especificação de formato, consulte a seção Comentários.

...

Um ou mais argumentos opcionais. O número e o tipo de parâmetros de argumento dependem das especificações de controle de formato correspondentes no parâmetro lpFmt.

Valor de retorno

Tipo: int

Se a função for bem-sucedida, o valor retornado será o número de caracteres armazenados no buffer de saída, sem contar o caractere nulo de encerramento.

Se a função falhar, o valor retornado será menor que o comprimento da saída esperada. Para obter informações de erro estendidas, chame GetLastError.

Observações

A cadeia de caracteres de controle de formato contém especificações de formato que determinam o formato de saída para os argumentos após o parâmetro lpFmt. As especificações de formato, discutidas abaixo, sempre começam com um sinal de porcentagem (%). Se um sinal de porcentagem for seguido por um caractere que não tem significado como um campo de formato, o caractere não será formatado (por exemplo, %% produzirá um caractere de sinal de porcentagem única).

A cadeia de caracteres de controle de formato é lida da esquerda para a direita. Quando a primeira especificação de formato (se houver) é encontrada, ela faz com que o valor do primeiro argumento após a cadeia de caracteres de controle de formato seja convertido e copiado para o buffer de saída de acordo com a especificação de formato. A especificação do segundo formato faz com que o segundo argumento seja convertido e copiado e assim por diante. Se houver mais argumentos do que especificações de formato, os argumentos extras serão ignorados. Se não houver argumentos suficientes para todas as especificações de formato, os resultados serão indefinidos.

Uma especificação de formato tem o seguinte formulário:

[][][0][de largura][.precision]tipo

Cada campo é um único caractere ou um número que significa uma opção de formato específico. O tipo caracteres que aparecem após o último campo de formato opcional determinar se o argumento associado é interpretado como um caractere, uma cadeia de caracteres ou um número. A especificação de formato mais simples contém apenas o sinal de porcentagem e um caractere de tipo (por exemplo, %s). Os campos opcionais controlam outros aspectos da formatação. A seguir estão os campos opcionais e necessários e seus significados.

Campo Significado
- Coloque a saída com espaços em branco ou zeros à direita para preencher a largura do campo, justificando a saída para a esquerda. Se esse campo for omitido, a saída será adicionada à esquerda, justificando-a à direita.
# Prefixe valores hexadecimal com 0x (minúscula) ou 0X (maiúscula).
0 Pad o valor de saída com zeros para preencher a largura do campo. Se esse campo for omitido, o valor de saída será adicionado com espaços em branco.
largura Copie o número mínimo de caracteres especificado para o buffer de saída. A largura campo é um inteiro nãonegativo. A especificação de largura nunca faz com que um valor seja truncado; se o número de caracteres no valor de saída for maior que a largura especificada ou se a largura campo não estiver presente, todos os caracteres do valor serão impressos, sujeitos à especificação de precisão.
. de precisão Para números, copie o número mínimo de dígitos especificado para o buffer de saída. Se o número de dígitos no argumento for menor que a precisão especificada, o valor de saída será adicionado à esquerda com zeros. O valor não é truncado quando o número de dígitos excede a precisão especificada. Se a precisão especificada for 0 ou omitida inteiramente ou se o período (.) aparecer sem um número seguindo-o, a precisão será definida como 1.

Para cadeias de caracteres, copie o número máximo de caracteres especificado para o buffer de saída.

tipo Produza o argumento correspondente como um caractere, uma cadeia de caracteres ou um número. Esse campo pode ser qualquer um dos valores a seguir.
c
Caractere único. Esse valor é interpretado como CHAR do tipo wsprintfA e digite WCHAR wsprintfW. Observe wsprintf é uma macro definida como wsprintfA (Unicode não definido) ou wsprintfW (Unicode definido).
C
Caractere único. Esse valor é interpretado como tipo WCHAR wsprintfA e digite CHAR wsprintfW. Observe wsprintf é uma macro definida como wsprintfA (Unicode não definido) ou wsprintfW (Unicode definido).
d
Inteiro decimal com sinal. Esse valor é equivalente a i.
hc, hC
Caractere único. Se o caractere tiver um valor numérico igual a zero, ele será ignorado. Esse valor sempre é interpretado como tipo CHAR, mesmo quando o aplicativo de chamada define Unicode.
hd
Argumento inteiro curto assinado.
hs, hS
Corda. Esse valor sempre é interpretado como tipo LPSTR, mesmo quando o aplicativo de chamada define Unicode.
hu
Inteiro curto sem sinal.
i
Inteiro decimal com sinal. Esse valor é equivalente a d.
Ix, IX
Inteiro hexadecimal sem sinal de 64 bits em letras minúsculas ou maiúsculas em plataformas de 64 bits, inteiro hexadecimal sem sinal de 32 bits em letras minúsculas ou maiúsculas em plataformas de 32 bits.
lc, lC
Caractere único. Se o caractere tiver um valor numérico igual a zero, ele será ignorado. Esse valor sempre é interpretado como tipo WCHAR, mesmo quando o aplicativo de chamada define Unicode.
ld
Inteiro com sinal longo. Esse valor é equivalente a li.
li
Inteiro com sinal longo. Esse valor é equivalente a ld.
ls, lS
Corda. Esse valor sempre é interpretado como tipo LPWSTR, mesmo quando o aplicativo de chamada não define Unicode. Esse valor é equivalente a ws.
lu
Inteiro sem sinal longo.
lx, lX
Inteiro hexadecimal sem sinal longo em letras minúsculas ou maiúsculas.
p
Ponteiro. O endereço é impresso usando hexadecimal.
s
Corda. Esse valor é interpretado como tipo LPSTR wsprintfA e digite LPWSTR wsprintfW. Observe wsprintf é uma macro definida como wsprintfA (Unicode não definido) ou wsprintfW (Unicode definido).
S
Corda. Esse valor é interpretado como LPWSTR wsprintfA e digite LPSTR wsprintfW. Observe wsprintf é uma macro definida como wsprintfA (Unicode não definido) ou wsprintfW (Unicode definido).
u
Argumento inteiro sem sinal.
x, X
Inteiro hexadecimal não assinado em letras minúsculas ou maiúsculas.
 
Observação É importante observar que wsprintf usa a convenção de chamada C (_cdecl), em vez da convenção de chamada padrão (_stdcall). Como resultado, é responsabilidade do processo de chamada tirar argumentos da pilha e os argumentos são empurrados para a pilha da direita para a esquerda. Em módulos de linguagem C, o compilador C executa essa tarefa.
 
Para usar buffers maiores que 1024 bytes, use _snwprintf. Para obter mais informações, consulte a documentação da biblioteca de tempo de execução C.

Nota

O cabeçalho winuser.h define wsprintf 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 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho winuser.h (inclua Windows.h)
biblioteca User32.lib
de DLL User32.dll

Consulte também

Conceitual

de referência de

StringCbPrintf

StringCbPrintfEx

StringCbVPrintf

stringCbVPrintfEx

StringCchPrintf

StringCchPrintfEx

StringCchVPrintf

StringCchVPrintfEx

cadeias de caracteres

wvsprintf