#include <string>

std::string wchar2char(const std::wstring x){
int m=x.size(); if(m<=0) return 0;
std::string y(3*m,'\0');
m=WideCharToMultiByte(CP_ACP, 0, &x[0], m, &y[0], 3*m, NULL, NULL);
y.resize(m); return y; }
std::string wchar2char(wchar_t x){ return wchar2char( std::wstring(x,1) ); }
//
std::wstring char2wchar(const std::string x){
int m=x.size(); if(m<=0)return 0;
std::wstring y(m, L'\0');
m=MultiByteToWideChar(CP_ACP, 0, &x[0], m, &y[0], m);
y.resize(m); return y;}
std::wstring char2wchar(char x){ return char2wchar( std::string(x,1) ); }