建議使用 Visual Studio 2017

mbstowcs_s、_mbstowcs_s_l

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

將多位元組字元序列轉換成對應的寬字元序列。 版本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
產生的已轉換寬字元字串的緩衝區的位址。

[in] sizeInWords
大小wcstr中文字的緩衝區。

[in]mbstr
Null 的序列位址終止多位元組字元。

[in] count
儲存在寬字元的數目上限wcstr緩衝區,不包括結束的 null 或_TRUNCATE

[in] locale
要使用的地區設定。

如果成功,失敗的錯誤代碼。

錯誤狀況傳回值和 errno
wcstris NULL and sizeInWords > 0EINVAL
mbstrNULLEINVAL
目的緩衝區太小而無法包含已轉換的字串 (除非count_TRUNCATE; 請參閱下面的備註)ERANGE
wcstris not NULL and sizeInWords == 0EINVAL

如果上述任一種情況發生時,所述,會叫用無效參數例外狀況參數驗證。 如果允許繼續執行,此函式會傳回錯誤碼,並將 errno 設為如表中所示。

mbstowcs_s函式所指向的多位元組字元字串,轉換為mbstr成儲存在緩衝區所指向的寬字元wcstr。 除非遇到下列情況之一,否則會繼續為每個字元進行轉換:

  • 遇到多位元組的 null 字元

  • 遇到無效的多位元組字元

  • 儲存在 wcstr 緩衝區的寬字元數目等於 count

目的地字串一律是以 null 結束 (即使發生錯誤)。

如果count是特殊值_TRUNCATE,然後mbstowcs_s的字串會盡量轉換符合目的緩衝區,同時仍留出空間給 null 結束字元。

如果mbstowcs_s成功轉換來源字串中,放在已轉換的字串,包括 null 結束字元的寬字元大小*``pReturnValue(提供pReturnValueNULL)。 發生這種情況即使wcstr引數是NULL,並提供方法來判斷所需的緩衝區大小。 請注意,如果wcstrNULLcount會被忽略,和sizeInWords必須是 0。

如果mbstowcs_s遇到無效的多位元組字元,將 0 放入*``pReturnValue,目的端緩衝區設定為空字串,設定errnoEILSEQ,並傳回EILSEQ

如果 mbstrwcstr 所指向的序列重疊,mbstowcs_s 的行為不明。

System_CAPS_ICON_important.jpg 重要

確定 wcstrmbstr 沒有重疊,而且 count 正確反映要轉換的多位元組字元數。

mbstowcs_s使用目前的地區設定進行任何地區設定相關的行為。_mbstowcs_s_l完全相同,但會改用傳遞的地區設定。 如需詳細資訊,請參閱 Locale

C++ 利用多載樣板簡化了這些函式的使用方式。多載可自動推斷緩衝區長度 (因而不須指定大小引數),也可以將不安全的舊函式自動取代成較新且安全的對應函式。 如需詳細資訊,請參閱 Secure Template Overloads

常式必要的標頭
mbstowcs_s<stdlib.h>
_mbstowcs_s_l<stdlib.h>

如需其他相容性資訊,請參閱<簡介>中的 相容性

不適用。 若要呼叫標準 C 函式,請使用 PInvoke。 如需詳細資訊,請參閱 平台叫用範例

資料轉換
地區設定
MultiByteToWideChar
多位元組字元序列的解譯
_mbclen、 mblen、 _mblen_l
mbtowc、 _mbtowc_l
wcstombs、 _wcstombs_l
wctomb、 _wctomb_l

顯示: