MFC CString转char

char * CString2charArray(CString str)
{
std::string str2;
str2=_bstr_t(str).operator const char*();
char szText[1024];
//memset(Buff,0,1024);
//strcpy(Buff,str2);
std::sprintf(szText,"%s",str2.c_str());
return szText;
}
、、、、、、、、
CString就是宽字节,如果项目创建的字符集是Unicode 字符集,那么某些地方就需要转换
比如vs2013默认项目,unicode 字符集。
需要用到socket的send发送数据,如果CString str=txwtech,
str.getbuffer(0)发送,则只会发送第一个字符
//
所以需要转换
char lpsz=wchat2char(str),
再用m_SocketClient.send(lpsz,str.GetLength());就可以了
wchar_t * char2wchar(const char
cchar)
{
wchar_t m_wchar;
int len = MultiByteToWideChar( CP_ACP ,0,cchar ,strlen( cchar), NULL,0);
m_wchar= new wchar_t[len+1];
MultiByteToWideChar( CP_ACP ,0,cchar,strlen( cchar),m_wchar,len);
m_wchar[len]= ‘\0’ ;
return m_wchar;
}
char * wchar2char(const wchar_t
wchar )
{
char * m_char;
int len= WideCharToMultiByte( CP_ACP ,0,wchar ,wcslen( wchar ), NULL,0, NULL ,NULL );
m_char= new char[len+1];
WideCharToMultiByte( CP_ACP ,0,wchar ,wcslen( wchar ),m_char,len, NULL ,NULL );
m_char[len]= ‘\0’;
return m_char;
}

std::string转数组s_str()
Char szText[100];
string str1=”abcdefg”;
sprint_s(szText,sizeof(szText),”%s…”,str1.c_str());

std::sprintf(szText,”…%s…”,str1.c_str());

char数组转CString字符串(宽字节)
char aa[100];
CString csStr;
csStr=_bstr_t(aa).operator TCHAR*();

CString转std::string
CString csStr;
csStr=”qwert”;
std::string str2;
str2=_bstr_t(csStr).operator const char*();

CString转char数组
CString->std::string
Std::string->char数组

string赋值给 char[]
std::string str=”abcdefg”;
char Buff[1024];
memset(Buff,0,1024);
strcpy(Buff,str,strlen(Buff));

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

txwtech笛克特科

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值