Tchar和char的转换:LPCSTR

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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值