div
eof
Развернуть Свернуть
Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала
Эта тема еще не получила оценку - Оценить эту тему

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>

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

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

Была ли вам полезна эта информация?
(1500 символов осталось)

Добавления сообщества

ДОБАВИТЬ
© 2013 Microsoft. Все права защищены.