mbstowcs_s, _mbstowcs_s_l

Преобразует последовательность многобайтовых символов в соответствующей последовательности широких символов.Версии mbstowcs, _mbstowcs_l с улучшения безопасности, как описано в разделе Средства безопасности в CRT.

errno_t mbstowcs_s(
   size_t *pReturnValue,
   wchar_t *wcstr,
   size_t sizeInWords,
   const char *mbstr,
   size_t count 
);
errno_t _mbstowcs_s_l(
   size_t *pReturnValue,
   wchar_t *wcstr,
   size_t sizeInWords,
   const char *mbstr,
   size_t count,
   _locale_t locale
);
template <size_t size>
errno_t mbstowcs_s(
   size_t *pReturnValue,
   wchar_t (&wcstr)[size],
   const char *mbstr,
   size_t count 
); // C++ only
template <size_t size>
errno_t _mbstowcs_s_l(
   size_t *pReturnValue,
   wchar_t (&wcstr)[size],
   const char *mbstr,
   size_t count,
   _locale_t locale
); // C++ only

Параметры

  • [исходящий] pReturnValue
    Преобразовать число символов.

  • [исходящий] wcstr
    Адрес буфера для полученного преобразовать строка двухбайтовых знаков.

  • [входящий] sizeInWords
    Размер wcstr буфера в словах.

  • [in]mbstr
    Адрес последовательности null завершен многобайтовых символов.

  • [входящий] count
    Максимальное число широких символов для хранения в wcstr буфера, не включая завершающий null или _TRUNCATE.

  • [входящий] locale
    Языковой стандарт.

Возвращаемое значение

Нуль в случае успешного выполнения, код ошибки в случае сбоя.

Состояние ошибки

Возвращаемое значение иerrno

wcstris NULL and sizeInWords > 0

EINVAL

Параметр mbstr содержит значение NULL

EINVAL

Целевой буфер слишком мал для хранения преобразованных строки (если не count , _TRUNCATE; см. примечания ниже)

ERANGE

wcstris not NULL and sizeInWords == 0

EINVAL

Вызывается при возникновении любого из следующих условий исключения недопустимого параметра, как описано в разделе Проверка параметров .Если выполнение разрешается продолжить, то функция возвращает код ошибки и устанавливает errno как указано в таблице.

Заметки

mbstowcs_s Функция преобразует строки многобайтовых символов, на который указывает mbstr в широкие символы в буфер, на который указывает wcstr.Преобразование будет продолжать для каждого символа, пока не будет выполнено одно из следующих условий:

  • Обнаружена многобайтовых символов null

  • Обнаружены недопустимые многобайтовые кодировки

  • Число двухбайтовых знаков, хранящиеся в wcstr буфера равно count.

Строка назначения всегда нулем (даже в случае возникновения ошибки).

Если count — это специальное значение _TRUNCATE, затем mbstowcs_s преобразует столько строк, как будут помещается в буфер назначения по-прежнему, оставляя место для нулевой завершающий символ.

Если mbstowcs_s успешно преобразует строку исходного размера помещается в широких символов преобразованной строки, включая символ конца, в *pReturnValue (предоставляется pReturnValue не NULL).Это происходит, даже если wcstr аргумент NULL и предоставляет способ определить требуемый размер буфера.Note that if wcstr is NULL, count is ignored, and sizeInWords must be 0.

Если mbstowcs_s встречает недопустимых многобайтовых символов 0 помещается в *pReturnValue, задает буфер назначения является пустой строкой, задает errno для EILSEQи возвращает EILSEQ.

Если в последовательности, на который указывает mbstr и wcstr перекрывать поведение mbstowcs_s не определен.

Примечание о безопасностиПримечание по безопасности

Убедитесь, что wcstr и mbstr не перекрываются и count правильно отражает число многобайтовых символов для преобразования.

mbstowcs_sиспользует текущий языковой стандарт для всех зависимых от языковых стандартов поведения; _mbstowcs_s_lидентичен, за исключением того, что он использует язык, переданное вместо.Дополнительные сведения см. в разделе Языковой стандарт.

В C++ с помощью этих функций является упрощенной, перегрузок шаблонов; перегрузки может автоматически определить длину буфера (избавляет от необходимости указания размера аргумента) и они автоматически заменить старые, небезопасные функции с их эквивалентами в новой, безопасной.Дополнительные сведения см. в разделе Предоставляйте перегруженный шаблона.

Требования

Процедура

Обязательный заголовок

mbstowcs_s

<stdlib.h>

_mbstowcs_s_l

<stdlib.h>

Совместимость Дополнительные сведения см. Совместимость во введении.

Эквивалент в .NET Framework

Неприменимо. Вызов стандартной функции c помощью PInvoke. Для получения дополнительных сведений см. Примеры вызова платформы.

См. также

Ссылки

Преобразование данных

Языковой стандарт

MultiByteToWideChar

Интерпретация последовательностей многобайтового символов

_mbclen, mblen, _mblen_l

mbtowc, _mbtowc_l

wcstombs, _wcstombs_l

wctomb, _wctomb_l