функция StringCbVPrintf_lA (strsafe.h)
Записывает отформатированные данные в указанную строку, используя указатель на список аргументов. Размер целевого буфера предоставляется функции, чтобы гарантировать, что она не записывает данные после конца этого буфера.
StringCbVPrintf_l похож на StringCbVPrintf , но включает параметр для сведений о языковом стандарте.
Синтаксис
STRSAFEAPI StringCbVPrintf_lA(
[out] STRSAFE_LPSTR pszDest,
[in] size_t cbDest,
[in] _Printf_format_string_params_(2)STRSAFE_LPCSTR pszFormat,
[in] _locale_t locale,
[in] va_list argList
);
Параметры
[out] pszDest
Буфер назначения, который получает отформатированную строку, завершающуюся значением NULL, созданную из pszFormat и argList.
[in] cbDest
Размер целевого буфера в байтах. Это значение должно быть достаточно большим, чтобы вместить итоговую отформатированную строку и завершающий символ NULL. Максимально допустимое количество байтов — STRSAFE_MAX_CCH * sizeof(TCHAR)
.
[in] pszFormat
Строка формата. Эта строка должна заканчиваться null. Дополнительные сведения см. в разделе Синтаксис спецификации формата.
[in] locale
Объект языкового стандарта. Дополнительные сведения см. в разделе _create_locale.
[in] argList
Аргументы, которые необходимо вставить в строку pszFormat .
Возвращаемое значение
Эта функция может возвращать одно из следующих значений. Настоятельно рекомендуется использовать макросы SUCCEEDED и FAILED для проверки возвращаемого значения этой функции.
Код возврата | Описание |
---|---|
|
Достаточно места для копирования результата в pszDest без усечения, а буфер завершается null. |
|
Значение в cbDest равно 0 или больше .STRSAFE_MAX_CCH * sizeof(TCHAR)
|
|
Операция копирования завершилась сбоем из-за недостаточного пространства в буфере. Целевой буфер содержит усеченную версию предполагаемого результата, завершаемую null. В ситуациях, когда усечение приемлемо, это не обязательно может рассматриваться как условие сбоя. |
Комментарии
Дополнительные сведения о va_lists см. в соглашениях, определенных в Stdarg.h.
Поведение не определено, если строки, на которые указывают pszDest, pszFormat или любые строки аргументов, перекрываются.
Ни pszFormat, ни pszDest не должны иметь значение NULL. Если требуется обработка значений строкового указателя null, см. раздел StringCbVPrintf_lEx .
Чтобы использовать эту функцию, необходимо определить следующий макрос в файле заголовка перед включением StrSafe.h.
#define STRSAFE_LOCALE_FUNCTIONS
Примечание
Заголовок strsafe.h определяет StringCbVPrintf_l как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | strsafe.h |