функция StringCbVPrintf_lW (strsafe.h)

Записывает отформатированные данные в указанную строку, используя указатель на список аргументов. Размер целевого буфера предоставляется функции, чтобы гарантировать, что она не записывает данные после конца этого буфера.

StringCbVPrintf_l похож на StringCbVPrintf , но включает параметр для сведений о языковом стандарте.

Синтаксис

STRSAFEAPI StringCbVPrintf_lW(
  [out] STRSAFE_LPWSTR                                  pszDest,
  [in]  size_t                                          cbDest,
  [in]  _Printf_format_string_params_(2)STRSAFE_LPCWSTR 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 для проверки возвращаемого значения этой функции.

Код возврата Описание
S_OK
Достаточно места для копирования результата в pszDest без усечения, а буфер завершается null.
STRSAFE_E_INVALID_PARAMETER
Значение в cbDest равно 0 или больше .STRSAFE_MAX_CCH * sizeof(TCHAR)
STRSAFE_E_INSUFFICIENT_BUFFER
Операция копирования завершилась сбоем из-за недостаточного пространства в буфере. Целевой буфер содержит усеченную версию предполагаемого результата, завершаемую 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