Aracılığıyla paylaş


mbstowcs_s, _mbstowcs_s_l

Çok baytlı karakter dizisini, karşılık gelen geniş karakter dizisine dönüştürür. mbstowcs_mbstowcs_lsürümleri, CRT'deki Güvenlik özellikleri bölümünde açıklandığı gibi güvenlik geliştirmeleri ile.

Sözdizimi

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

Parametreler

pReturnValue
Dönüştürülen karakter sayısı.

wcstr
Sonuçta dönüştürülen geniş karakter dizesi için arabellek adresi.

sizeInWords
Arabelleğin sözcüklerle wcstr boyutu.

mbstr
Null olarak sonlandırılan çok baytlı karakter dizisinin adresi.

count
Sonlandırıcı null veya _TRUNCATEdahil olmak üzere arabellekte wcstr depolanmış en fazla geniş karakter sayısı.

locale
Kullanılacak yerel ayar.

Dönüş değeri

Başarılı olursa sıfır, hata durumunda bir hata kodu.

Hata koşulu Dönüş değeri ve errno
wcstr ve NULLsizeInWords> 0 EINVAL
mbstrNULL EINVAL
Hedef arabellek dönüştürülen dizeyi içeremeyecek kadar küçük (değilse count_TRUNCATE, aşağıdaki Açıklamalar'a bakın) ERANGE
wcstrNULL değil ve sizeInWords == 0 EINVAL

Bu koşullardan herhangi biri oluşursa, parametre doğrulama bölümünde açıklandığı gibi geçersiz parametre özel durumu çağrılır. Yürütmenin devam etmesi için izin verilirse işlev bir hata kodu döndürür ve tabloda gösterildiği gibi ayarlar errno .

Açıklamalar

işlevi tarafından mbstowcs_s işaret edilen çok baytlı karakterden oluşan bir dizeyi mbstr , tarafından işaret edilen arabellekte depolanan geniş karakterlere wcstrdönüştürür. Dönüştürme, bu koşullardan biri karşılanıncaya kadar her karakter için devam eder:

  • Çok baytlı null karakterle karşılaşıldı

  • Geçersiz bir çok baytlı karakterle karşılaşıldı

  • Arabellekte wcstr depolanan geniş karakter sayısı eşittir count.

Hedef dize her zaman null olarak sonlandırılır (hata olsa bile).

özel değer _TRUNCATEisecount, mbstowcs_s hedef arabelleğe sığacak kadar dizeyi dönüştürür ve null sonlandırıcı için yer bırakmaya devam eder.

Kaynak dizeyi başarıyla dönüştürürse mbstowcs_s , boyutu null sonlandırıcı da dahil olmak üzere dönüştürülen dizenin geniş karakterlerine yerleştirir *pReturnValue (sağlanmamıştır pReturnValueNULL). Bağımsız değişken olsa NULLbile wcstr boyut hesaplanır ve gerekli arabellek boyutunu belirlemek için bir yol sağlar. ise wcstrNULLcount yoksayılır ve sizeInWords 0 olmalıdır.

Geçersiz bir çok baytlı karakterle karşılaşırsambstowcs_s, içine 0 *pReturnValueekler, hedef arabelleği boş bir dizeye ayarlar, olarak EILSEQayarlar errno ve döndürürEILSEQ.

Tarafından işaret edilen mbstr ve wcstr çakışan diziler, davranışı mbstowcs_s tanımlanmamıştır.

Önemli

ve mbstr değerlerinin wcstr çakışmadığından ve count dönüştürülecek çok baytlı karakter sayısını doğru yansıttığından emin olun.

mbstowcs_s yerel ayara bağımlı herhangi bir davranış için geçerli yerel ayarı kullanır; _mbstowcs_s_l , bunun yerine geçirilen yerel ayarı kullanması dışında aynıdır. Daha fazla bilgi için bkz . Yerel Ayar.

C++'ta bu işlevlerin kullanılması şablon aşırı yüklemeleriyle basitleştirilir; aşırı yüklemeler arabellek uzunluğunu otomatik olarak çıkarabilir (boyut bağımsız değişkeni belirtme gereksinimini ortadan kaldırır) ve eski, güvenli olmayan işlevleri yeni ve güvenli karşılıklarıyla otomatik olarak değiştirebilir. Daha fazla bilgi için bkz . Güvenli şablon aşırı yüklemeleri.

Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.

Gereksinimler

Yordam Gerekli başlık
mbstowcs_s <stdlib.h>
_mbstowcs_s_l <stdlib.h>

Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.

Ayrıca bkz.

Veri dönüştürme
Yerel ayar
MultiByteToWideChar
Çok baytlı karakter dizilerinin yorumlanması
_mbclen, mblen, _mblen_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
wctomb, _wctomb_l