ber_printf-Funktion (winber.h)
Die ber_printf-Funktion wird zum Codieren eines BER-Elements verwendet und ähnelt sprintf_s. Ein wichtiger Unterschied besteht darin, dass Zustandsdaten im BerElement-Argument gespeichert werden, sodass mehrere Aufrufe an ber_printf ausgeführt werden können, die an das Ende des BER-Elements angefügt werden können. Das An diese Funktion übergebene BerElement-Argument muss ein Zeiger auf ein BerElement sein, das von ber_alloc_t zurückgegeben wird.
Syntax
WINBERAPI INT BERAPI ber_printf(
[in, out] BerElement *pBerElement,
[in] PSTR fmt,
...
);
Parameter
[in, out] pBerElement
Ein Zeiger auf die codierte BerElement-Struktur .
[in] fmt
Eine Codierungsformatzeichenfolge. Weitere Informationen finden Sie in den Hinweisen.
...
Die durch das fmt-Argument angegebenen Werte, die codiert werden sollen.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird eine nicht negative Zahl zurückgegeben. Wenn die Funktion fehlschlägt, wird -1 zurückgegeben.
Hinweise
Die Formatzeichenfolge kann Formatzeichen enthalten, die in der folgenden Tabelle aufgeführt sind.
Zeichen | BESCHREIBUNG |
---|---|
t | Tag. Das nächste Argument ist ein ber_tag_t , das das -Tag angibt, um das nächste in das BerElement geschriebene Element zu überschreiben. Dies funktioniert über Aufrufe hinweg. |
b | Boolean. Das nächste Argument ist ein ber_int_t, das entweder 0 für FALSE oder 1 für TRUE enthält. Ein boolesches Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x01U für das -Element verwendet. |
e | Aufgezählt. Das nächste Argument ist ein ber_int_t, das den aufgezählten Wert enthält. Ein aufgezähltes Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x0AU für das -Element verwendet. |
i | Integer. Das nächste Argument ist ein ber_int_t, das den ganzzahligen Wert enthält. Ein ganzzahliges Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x02U für das -Element verwendet. |
n | Null. Es ist kein Argument erforderlich. Ein ASN.1 NULL-Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x05U für das -Element verwendet. |
o | Oktettzeichenfolge. Die nächsten beiden Argumente sind ein char*, gefolgt von einem ber_len_t mit der Länge der Zeichenfolge. Die Zeichenfolge kann NULL-Bytes enthalten und muss nicht mit Null beendet sein. Ein Oktettzeichenfolgenelement wird ausgegeben, und es werden keine Zeichenformatkonvertierungen für die Zeichenfolgendaten ausgeführt. Das Übergeben eines NULL-Zeigers gefolgt von einer Länge von 0 ist akzeptabel, wenn ein NULL-Oktettzeichenfolgenelement erforderlich ist. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x04U für das -Element verwendet. |
s | Oktettzeichenfolge. Das nächste Argument ist ein char* , das auf eine anSI-Zeichenfolge mit Null endet. Die ANSI-Zeichenfolgenzeichen werden in das UTF-8-Format konvertiert, und ein Oktettzeichenfolgenelement wird ausgegeben, das das nachfolgende Byte "\0" (NULL) nicht enthält. Das Übergeben eines NULL-Zeigers ist akzeptabel, wenn ein NULL-Oktettzeichenfolgenelement erforderlich ist. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x04U für das -Element verwendet. |
V | Mehrere Oktettzeichenfolgen. Das nächste Argument ist ein char**, ein Array von char* -Zeigern auf NULL-beendete ANSI-Zeichenfolgen. Das letzte Element im Array muss ein NULL-Zeiger sein. Die Oktettzeichenfolgen enthalten nicht das nachfolgende Byte "\0" (NULL). Beachten Sie, dass ein Konstrukt wie {v} verwendet wird, um eine tatsächliche SEQUENZ VON Oktettzeichenfolgen abzurufen. Der T-Formatmodifizierer kann nicht mit diesem Formatzeichen verwendet werden. |
B | Mehrere Oktettzeichenfolgen. Ein NULL-beendetes Array von berval* wird bereitgestellt. Beachten Sie, dass ein Konstrukt wie {v} verwendet wird, um eine tatsächliche SEQUENZ VON Oktettzeichenfolgen abzurufen. Der T-Formatmodifizierer kann nicht mit diesem Formatzeichen verwendet werden. |
X | Bitzeichenfolge. Die nächsten beiden Argumente sind ein char* -Zeiger auf den Anfang der Bitzeichenfolge, gefolgt von einem ber_len_t , der die Anzahl der Bits in der Bitzeichenfolge enthält. Ein Bitstring-Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x03U für das -Element verwendet. |
{ | Startsequenz. Es ist kein Argument erforderlich. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x30U verwendet. |
} | Endsequenz. Es ist kein Argument erforderlich. Der T-Formatmodifizierer kann nicht mit diesem Formatzeichen verwendet werden. |
[ | Startsatz. Es ist kein Argument erforderlich. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x31U verwendet. |
] | Endsatz. Es ist kein Argument erforderlich. Der T-Formatmodifizierer kann nicht mit diesem Formatzeichen verwendet werden. |
Jedes linke Klammerzeichen ({) muss mit einer rechten Klammer (}) später in der Formatzeichenfolge oder in der Formatzeichenfolge eines nachfolgenden Aufrufs von ber_printf für dieses spezifische BerElement gekoppelt werden. Gleiches gilt für die Zeichen der linken Klammer ([) und der rechten Klammer (]).
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | winber.h |
Bibliothek | Wldap32.lib |
DLL | Wldap32.dll |