StringCchPrintf_lExW-Funktion (strsafe.h)
Schreibt formatierte Daten in die angegebene Zeichenfolge. Die Größe des Zielpuffers wird der Funktion bereitgestellt, um sicherzustellen, dass er nicht über das Ende dieses Puffers schreibt.
StringCchPrintf_lEx ähnelt StringCchPrintfEx-, enthält jedoch einen Parameter für Gebietsschemainformationen.
STRSAFEAPI StringCchPrintf_lExW(
[out] STRSAFE_LPWSTR pszDest,
[in] size_t cchDest,
[out] STRSAFE_LPWSTR *ppszDestEnd,
[out, optional] size_t *pcchRemaining,
[in] DWORD dwFlags,
[in] _Printf_format_string_params_(2)STRSAFE_LPCWSTR pszFormat,
[in] _locale_t locale,
...
);
[out] pszDest
Der Zielpuffer, der die formatierte, mit Null beendete Zeichenfolge empfängt, die aus pszFormat und den zugehörigen Argumenten erstellt wurde.
[in] cchDest
Die Größe des Zielpuffers in Zeichen. Dieser Wert muss ausreichend groß sein, damit die endgültige formatierte Zeichenfolge plus 1 für das endende Nullzeichen berücksichtigt wird. Die maximale Anzahl zulässiger Zeichen ist STRSAFE_MAX_CCH.
[out] ppszDestEnd
Die Adresse eines Zeigers bis zum Ende pszDest. Wenn ppszDestEnd- nichtNULL- ist und alle Daten in den Zielpuffer kopiert werden, verweist dies auf das endende NULL-Zeichen am Ende der Zeichenfolge.
[out, optional] pcchRemaining
Die Anzahl der nicht verwendeten Zeichen in pszDest, einschließlich des endenden Nullzeichens. Wenn pcchRemainingNULL-ist, wird die Anzahl nicht beibehalten oder zurückgegeben.
[in] dwFlags
Mindestens einer der folgenden Werte.
[in] pszFormat
Die Formatzeichenfolge. Diese Zeichenfolge muss null beendet werden. Weitere Informationen finden Sie unter Formatspezifikationssyntax.
[in] locale
Das Gebietsschemaobjekt. Weitere Informationen finden Sie unter _create_locale.
...
Die Argumente, die in die pszFormat- Zeichenfolge eingefügt werden sollen.
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 |
---|---|
|
Es war ausreichend Speicherplatz vorhanden, um das Ergebnis in pszDest ohne Abschneiden zu kopieren, und der Puffer wird null beendet. |
|
Der Wert in cchDest- ist entweder 0 oder größer als STRSAFE_MAX_CCH, oder der Zielpuffer ist bereits voll. |
|
Fehler beim Kopiervorgang aufgrund unzureichender Pufferspeicher. Abhängig vom Wert von dwFlagskann der Zielpuffer eine abgeschnittene, null-beendete Version des beabsichtigten Ergebnisses enthalten. In Situationen, in denen abgeschnitten werden kann, kann dies möglicherweise nicht unbedingt als Fehlerbedingung angesehen werden. |
Das Verhalten ist nicht definiert, wenn die Zeichenfolgen, auf die durch pszDest, pszFormat-oder argumentbasierte Zeichenfolgen verwiesen werden, überlappen.
Weder pszFormat noch pszDest sollte NULL- sein, es sei denn, das STRSAFE_IGNORE_NULLS Flag ist angegeben, in diesem Fall kann beide NULL-sein. Ein Fehler aufgrund unzureichender Leerzeichen kann jedoch weiterhin zurückgegeben werden, obwohl NULL- Werte ignoriert werden.
Um diese Funktion verwenden zu können, müssen Sie das folgende Makro in Ihrer Headerdatei definieren, bevor Sie StrSafe.h einschließen.
#define STRSAFE_LOCALE_FUNCTIONS
Hinweis
Der strsafe.h-Header definiert StringCchPrintf_lEx 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.
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | strsafe.h |