共用方式為


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

參數

  • [out] pReturnValue
    轉換的字元數。

  • [out] wcstr
    產生的轉換後的寬字元字串的緩衝區的位址。

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

  • [in]mbstr
    Null 的一系列的地址終止多位元組字元。

  • [in] count
    若要將儲存在寬字元的最大數目wcstr的緩衝區,不包括結尾的 null,或_TRUNCATE

  • [in] 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。

目的字串一定是 null 結尾 (甚至是錯誤)。

如果count是特殊值_TRUNCATE,然後mbstowcs_s轉換的格式代碼字串與精神容納到目的緩衝區,同時仍留出空間給 null 結束字元。

如果mbstowcs_s成功轉換來源的字串,它會將大小放置以寬字元為單位的轉換後的字串,包含 null 結束字元,到*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++ 中,使用這些函式已經過簡化的樣板的多載 ; 多載可以自動推斷緩衝區長度 (而不必指定 size 引數),它們可以自動取代較舊的、 不安全的函式同事安排更新的安全。 如需詳細資訊,請參閱 安全範本多載

需求

常式

所需標頭

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