vs2013MFC的socket的send发送数据,只发送了第一个字符的解决方法
m_SocketClient.send(str.getbuffer(0),str.GetLength());//vc6.0的用法
MFC CString转char
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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)