função ber_printf (winber.h)
A função ber_printf é usada para codificar um elemento BER e é semelhante a sprintf_s. Uma diferença importante é que os dados de estado são armazenados no argumento BerElement para que várias chamadas possam ser feitas para ber_printf para acrescentar ao final do elemento BER. O argumento BerElement passado para essa função deve ser um ponteiro para um BerElement retornado por ber_alloc_t.
Sintaxe
WINBERAPI INT BERAPI ber_printf(
[in, out] BerElement *pBerElement,
[in] PSTR fmt,
...
);
Parâmetros
[in, out] pBerElement
Um ponteiro para a estrutura BerElement codificada.
[in] fmt
Uma cadeia de caracteres de formato de codificação. Para obter mais informações, consulte Comentários.
...
Os valores a serem codificados conforme especificado pelo argumento fmt .
Retornar valor
Se a função for bem-sucedida, um número não negativo será retornado. Se a função falhar, -1 será retornado.
Comentários
A cadeia de caracteres de formato pode conter caracteres de formato listados na tabela a seguir.
Caractere | Descrição |
---|---|
t | Marca. O próximo argumento é um ber_tag_t que especifica a marca para substituir o próximo elemento gravado no BerElement. Isso funciona entre chamadas. |
b | Boolean. O próximo argumento é um ber_int_t, que contém 0 para FALSE ou 1 para TRUE. Um elemento booliano é a saída. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x01U será usada para o elemento . |
e | Enumerado. O próximo argumento é um ber_int_t, que contém o valor enumerado. Um elemento enumerado é a saída. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x0AU será usada para o elemento . |
i | Integer. O próximo argumento é um ber_int_t, que contém o valor inteiro. Um elemento inteiro é a saída. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x02U será usada para o elemento . |
n | Nulo. Nenhum argumento é necessário. Um elemento NULL ASN.1 é a saída. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x05U será usada para o elemento . |
o | Cadeia de caracteres de octeto. Os dois argumentos seguintes são um char*, seguido por um ber_len_t com o comprimento da cadeia de caracteres. A cadeia de caracteres pode conter bytes NULL e não precisa ser terminada em zero. Um elemento de cadeia de caracteres de octeto é saída e nenhuma conversão de formato de caractere nos dados da cadeia de caracteres é executada. Passar um ponteiro NULL seguido por um comprimento de 0 será aceitável se um elemento de cadeia de caracteres de octeto NULL for necessário. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x04U será usada para o elemento . |
s | Cadeia de caracteres de octeto. O próximo argumento é um char* apontando para uma cadeia de caracteres ANSI terminada em zero. Os caracteres de cadeia de caracteres ANSI são convertidos no formato UTF-8 e um elemento de cadeia de caracteres de octeto é a saída, que não inclui o byte '\0' à direita (nulo). Passar um ponteiro NULL será aceitável se um elemento de cadeia de caracteres de octeto NULL for necessário. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x04U será usada para o elemento . |
v | Várias cadeias de caracteres de octeto. O próximo argumento é um char**, uma matriz de ponteiros char* para cadeias de caracteres ANSI terminadas em zero. O último elemento na matriz deve ser um ponteiro NULL . As cadeias de caracteres de octeto não incluem o byte '\0' (nulo) à direita. Lembre-se de que um constructo como {v} é usado para obter uma sequência real de cadeias de caracteres de octeto. O modificador de formato t não pode ser usado com esse caractere de formato. |
V | Várias cadeias de caracteres de octeto. Uma matriz de berval* terminada em NULL é fornecida. Lembre-se de que um constructo como {v} é usado para obter uma sequência real de cadeias de caracteres de octeto. O modificador de formato t não pode ser usado com esse caractere de formato. |
X | Bitstring. Os dois argumentos a seguir são um ponteiro char* para o início da bitstring, seguido por um ber_len_t que contém o número de bits na bitstring. Um elemento bitstring é a saída. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x03U será usada para o elemento . |
{ | Iniciar sequência. Nenhum argumento é necessário. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x30U será usada. |
} | Sequência final. Nenhum argumento é necessário. O modificador de formato t não pode ser usado com esse caractere de formato. |
[ | Comece a definir. Nenhum argumento é necessário. Se esse caractere de formato não for precedido pelo modificador de formato t , a marca 0x31U será usada. |
] | Conjunto final. Nenhum argumento é necessário. O modificador de formato t não pode ser usado com esse caractere de formato. |
Cada caractere de chave esquerda ({) deve ser emparelhado com um caractere de chave direita (}) posteriormente na cadeia de caracteres de formato ou na cadeia de caracteres de formato de uma chamada subsequente para ber_printf para esse BerElement específico. O mesmo se aplica aos caracteres de colchete esquerdo ([) e colchete direito (]).
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | winber.h |
Biblioteca | Wldap32.lib |
DLL | Wldap32.dll |