Tchar和char的转换:
#include “stdafx.h”
#include “MFCAppFiledlg1.h”
#include “MFCAppFiledlg1Dlg.h”
#include <tchar.h>
#include
#include
#include
using namespace std;
#if _UNICODE
typedef wstring xstring;
#else
typedef string xstring;
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
#define USES_CONVERSION
xstring StrToXStr(const std::string & str)
{
xstring result;
#ifdef _UNICODE
setlocale(LC_ALL, “chs”);
const char* _Source = str.c_str();
size_t _Dsize = str.size() + 1;
wchar_t *_Dest = new wchar_t[_Dsize];
wmemset(_Dest, 0, _Dsize);
mbstowcs(_Dest, _Source, _Dsize);
result = _Dest;
delete[]_Dest;
setlocale(LC_ALL, "C");
#else
result = str;
#endif
return result;
}
// xstring 装换为string
std::string XStrToStr(const xstring& xstr)
{
std::string result;
#ifdef _UNICODE
std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = “C”;
setlocale(LC_ALL, "chs");
const wchar_t* _Source = xstr.c_str();
size_t _Dsize = 2 * xstr.size() + 1;
char *_Dest = new char[_Dsize];
memset(_Dest, 0, _Dsize);
wcstombs(_Dest, _Source, _Dsize);
result = _Dest;
delete[]_Dest;
setlocale(LC_ALL, curLocale.c_str());
#else
result = str;
#endif
return result;
}