マルチバイト文字列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