作者共发了6篇帖子。 内容转换:不转换▼
 
点击 回复
732 5
【函数】宽字节CString转char*
亮出13cm 十九级
1楼 发表于:2012-7-24 16:21

看来char*与char[]是两种不同的字符串。废话少说先上函数代码:

 

 

 

void W2C(const wchar_t* pwstr,char* pcstr,size_t len)
{
 int nlength=wcslen(pwstr);
 unsigned int nbytes=WideCharToMultiByte(0,0,pwstr,nlength,NULL,0,NULL,NULL);
 if (nbytes>len)
  nbytes=len;
 WideCharToMultiByte(0,0,pwstr,nlength,pcstr,nbytes,NULL,NULL);
}
char* CStringToChar(CString* str)
{
 char* ch=0x00; //赋初值避免警告
 size_t len=str->GetLength();
 wchar_t* wch=str->GetBuffer();
 ch=new char[len+1];
 W2C(wch,ch,len);
 ch[len]='\0';
 return ch;
}

亮出13cm 十九级
2楼 发表于:2012-7-24 16:22

用法很简单。

 

CString str=_T("dp=06DDRT&c=70");
char* ch=CStringToChar(&str);

亮出13cm 十九级
3楼 发表于:2012-7-24 16:23
————————————————————完毕————————————
亮出13cm 十九级
4楼 发表于:2012-7-24 16:24
CStringToChar函数就是_T的逆运算
亮出13cm 十九级
5楼 发表于:2014-11-16 01:09
char*与char[]转换起来很麻烦,所以不要认为这两家伙就是一个类型
亮出13cm 十九级
6楼 发表于:2016-6-20 22:49
char *和char[]的区别:
https://zh.arslanbar.net/post.php?t=24190

回复帖子

内容:
用户名: 您目前是匿名发表
验证码:
(快捷键:Ctrl+Enter)
 

本帖信息

点击数:732 回复数:5
评论数: ?
作者:巨大八爪鱼
最后回复:巨大八爪鱼
最后回复时间:2016-6-20 22:49
精品区:函数代码库
 
©2010-2024 Arslanbar Ver2.0
除非另有声明,本站采用知识共享署名-相同方式共享 3.0 Unported许可协议进行许可。