マルチバイト文字列char → ワイド文字列WCHARの変換

  • 関数
#include < locale.h >

//ワイド文字列(WCHAR*)をマルチバイト文字列(char*)に変換
errno_t wcstombs_s(
  size_t *pReturnValue, //変換された文字数
  char *mbstr,          //変換結果のマルチバイト文字列用のバッファのアドレス(変換先)
  size_t sizeInBytes,   //mbstr バッファのサイズ 
  const wchar_t *wcstr, //変換されるワイド文字列のアドレス(変換元)
  size_t count          //wcstr に格納するワイド文字の最大数
);


//マルチバイト文字列(char*)をワイド文字列(WCHAR*)に変換
errno_t mbstowcs_s(
   size_t *pReturnValue,        //変換された文字数
   wchar_t *wcstr,              //変換されたワイド文字列を格納するバッファのアドレス(変換先)
   size_t sizeInWords,  //wcstr バッファのサイズ
   const char *mbstr,           //マルチバイト文字列のアドレス(変換元)
   size_t count                 //wcstr に格納するワイド文字の最大数
);


  • <<<サンプルプログラム>>>
//ワイド文字列(WCHAR*)をマルチバイト文字列(char*)に変換
//変換前文字列
WCHAR*  wStrW   = _T("ワイド文字列");
//変換文字列格納バッファ
char    wStrC[50];

size_t wLen = 0;
errno_t err = 0;

//ロケール指定
setlocale(LC_ALL,"japanese");
//変換
err = wcstombs_s(&wLen, wStrC, 20, wStrW, _TRUNCATE);

//マルチバイト文字列(char*)をワイド文字列(WCHAR*)に変換

//変換前文字列
char*   wStrC   = "マルチバイト文字列";
//変換文字列格納バッファ
WCHAR   wStrW[50];

size_t wLen = 0;
errno_t err = 0;

//ロケール指定
setlocale(LC_ALL,"japanese");
//変換
err = mbstowcs_s(&wLen, wStrW, 20, wStrC, _TRUNCATE);

タグ:

+ タグ編集
  • タグ:
最終更新:2014年02月14日 16:53