Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Ruft eine Textzeile von Stdin bis einschließlich des Zeilenumbruchzeichens ('\n') ab. Die Textzeile wird in den Zielpuffer kopiert, und das Zeilenumbruchzeichen wird durch ein NULL-Zeichen ersetzt. Die Größe des Zielpuffers wird der Funktion bereitgestellt, um sicherzustellen, dass er nicht über das Ende dieses Puffers schreibt.
Syntax
STRSAFEAPI StringCbGetsW(
[out] STRSAFE_LPWSTR pszDest,
[in] size_t cbDest
);
Parameter
[out] pszDest
Typ: LPTSTR-
Der Zielpuffer, der die Eingabe empfängt.
[in] cbDest
Typ: size_t
Die Größe des Zielpuffers in Byte. Dieser Wert muss größer als sizeof(TCHAR) sein, damit die Funktion erfolgreich ausgeführt werden kann. Die maximale Anzahl zulässiger Bytes ist STRSAFE_MAX_CCH * sizeof(TCHAR). Wenn cbDest- zu klein ist, um die vollständige Textzeile zu halten, werden die Daten abgeschnitten.
Rückgabewert
Typ: HRESULT-
Diese Funktion kann einen der folgenden Werte zurückgeben. Es wird dringend empfohlen, die SUCCEEDED und FAILED Makros zum Testen des Rückgabewerts dieser Funktion zu verwenden.
| Rückgabecode | Beschreibung |
|---|---|
|
Daten wurden aus stdin gelesen, in den Puffer bei pszDestkopiert, und der Puffer wurde null beendet. |
|
Gibt einen Fehler oder eine Dateiendebedingung an. Verwenden Sie feof oder Ferror-, um zu bestimmen, welcher aufgetreten ist. |
|
Der Wert in cbDest- ist größer als der maximal zulässige Wert. |
|
Der Wert in cbDest- ist sizeof(TCHAR) oder kleiner.
|
Beachten Sie, dass diese Funktion einen HRESULT- Wert zurückgibt, im Gegensatz zu den funktionen, die sie ersetzt.
Bemerkungen
StringCbGets- bietet zusätzliche Verarbeitung für die ordnungsgemäße Pufferverarbeitung in Ihrem Code. Eine schlechte Pufferbehandlung ist in vielen Sicherheitsproblemen mit Pufferüberläufen verbunden. StringCbGets immer null-terminates einen Nicht-Längen-Zielpuffer.
Der Wert pszDest- darf nicht NULL-sein. Weitere Informationen finden Sie unter StringCbGetsEx-, wenn Sie die Behandlung von Null-Zeichenfolgenzeigerwerten benötigen.
StringCbGets- kann in der generischen Form oder in spezifischeren Formularen verwendet werden. Der Datentyp der Zeichenfolge bestimmt die Form dieser Funktion, die Sie verwenden sollten, wie in der folgenden Tabelle dargestellt.
| String-Datentyp | Zeichenfolgenliteral | Funktion |
|---|---|---|
| Zeichen- | "string" | StringCbGetsA- |
| TCHAR- | TEXT("Zeichenfolge") | StringCbGets- |
| WCHAR- | L"string" | StringCbGetsW- |
Anmerkung
Der strsafe.h-Header definiert StringCbGets als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
| Anforderung | Wert |
|---|---|
| mindestens unterstützte Client- | Windows XP mit SP2 [Desktop-Apps | UWP-Apps] |
| mindestens unterstützte Server- | Windows Server 2003 mit SP1 [Desktop-Apps | UWP-Apps] |
| Zielplattform- | Fenster |
| Header- | strsafe.h |
Siehe auch
Referenz-