MEMO blog

主に自分用のメモです

ワイド文字・マルチバイト変換

さらに、も。

ちょいちょいと調べたけど、結局、参考先まんまになってしまったなぁ

(参考)

std::stringとstd::wstringの相互変換 - kryozahiro’s diary

MultiByteToWideChar - Windows APIの部屋

#include <cstdlib>
#include <string>

using namespace std;

void convWcs2Mbs(const wstring &src, string &dest) {
    size_t size = src.length() * MB_CUR_MAX + 1;
    char* mbs = new char[size];
    //wcstombs(mbs, src.c_str(), size); // visual atudioだと怒られる...
    dest = mbs;
    delete[] mbs;
}

void convMbs2Wcs(const string& src, wstring& dest) {
    size_t size = src.length() + 1;
    wchar_t* wcs = new wchar_t[size];
    //mbstowcs(wcs, src.c_str(), size); // visual atudioだと怒られる...
    dest = wcs;
    delete[] wcs;
}