mbstowcs_s
, _mbstowcs_s_l
Çok baytlı karakter dizisini, karşılık gelen geniş karakter dizisine dönüştürür. mbstowcs
_mbstowcs_l
sü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 _TRUNCATE
dahil 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 NULL sizeInWords > 0 |
EINVAL |
mbstr dir NULL |
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 |
wcstr NULL 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 wcstr
dö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şittircount
.
Hedef dize her zaman null olarak sonlandırılır (hata olsa bile).
özel değer _TRUNCATE
isecount
, 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 pReturnValue
NULL
). Bağımsız değişken olsa NULL
bile wcstr
boyut hesaplanır ve gerekli arabellek boyutunu belirlemek için bir yol sağlar. ise wcstr
NULL
count
yoksayılır ve sizeInWords
0 olmalıdır.
Geçersiz bir çok baytlı karakterle karşılaşırsambstowcs_s
, içine 0 *pReturnValue
ekler, hedef arabelleği boş bir dizeye ayarlar, olarak EILSEQ
ayarlar 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