Copy Code code as follows:
#ifndef Use_h_
#define Use_h_
#include <iostream>
#include <windows.h>
#include <string>
using namespace Std;
Class Cuser
{
Public
Cuser ();
virtual~ Cuser ();
char* Wchartochar (const wchar_t* WP);
char* Stringtochar (const string& s);
char* Wstringtochar (const wstring& WS);
wchar_t* Chartowchar (const char* c);
wchar_t* Wstringtowchar (const wstring& WS);
wchar_t* Stringtowchar (const string& s);
Wstring stringtowstring (const string& s);
String wstringtostring (const wstring& WS);
void release ();
Private
char* M_char;
wchar_t* M_wchar;
};
#endif;
Copy Code code as follows:
#include "stdafx.h"
#include "use.h"
Cuser::cuser ()
: M_char (NULL)
, M_wchar (NULL)
{
}
Cuser::~cuser ()
{
Release ();
}
char* Cuser::wchartochar (const wchar_t* WP)
{
Release ();
int len= WideCharToMultiByte (Cp_acp,0,wp,wcslen (WP), null,0,null,null);
M_char=new char[len+1];
WideCharToMultiByte (Cp_acp,0,wp,wcslen (WP), m_char,len,null,null);
M_char[len]= ' ";
return M_char;
}
wchar_t* Cuser::chartowchar (const char* c)
{
Release ();
int len = MultiByteToWideChar (Cp_acp,0,c,strlen (c), null,0);
M_wchar=new wchar_t[len+1];
MultiByteToWideChar (Cp_acp,0,c,strlen (c), M_wchar,len);
M_wchar[len]= ' ";
return M_wchar;
}
void Cuser::release ()
{
if (M_char)
{
Delete M_char;
M_char=null;
}
if (M_wchar)
{
Delete M_wchar;
M_wchar=null;
}
}
char* Cuser::stringtochar (const string& s)
{
Return const_cast<char*> (S.c_str ());
}
char* Cuser::wstringtochar (const std::wstring &WS)
{
Const wchar_t* WP=WS.C_STR ();
return Wchartochar (WP);
}
wchar_t* Cuser::wstringtowchar (const std::wstring &WS)
{
Return const_cast<wchar_t*> (Ws.c_str ());
}
wchar_t* Cuser::stringtowchar (const string& s)
{
Const char* P=S.C_STR ();
Return Chartowchar (P);
}
String cuser::wstringtostring (const std::wstring &WS)
{
string S;
char* P=wstringtochar (WS);
S.append (P);
return s;
}
Wstring cuser::stringtowstring (const std::string &s)
{
Wstring ws;
wchar_t* Wp=stringtowchar (s);
Ws.append (WP);
return WS;
}
If it involves CString, you can use the Cstring::getbuffer () function to convert it.