Chinaunix首页 | 论坛 | 博客
  • 博客访问: 424978
  • 博文数量: 69
  • 博客积分: 957
  • 博客等级: 准尉
  • 技术积分: 1161
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-26 14:54
文章分类

全部博文(69)

文章存档

2013年(15)

2012年(12)

2011年(42)

分类: C/C++

2011-10-11 09:53:52

强制转换
1. unsigned char * pa=(unsigned char*)pb; //pb是char*
2. unsigned char * pa=(unsigned char*)((char*)((LPCTSTR)str)); //str是CString
追问
强制换转会出现乱码的
回答
如果你使用了unicode的话,CString不能直接转换成char*或unsigned char*
两个方案:
1.创建工程的时候不使用unicode,如果工程已经创建,修改“项目->XXX项目属性->配置属性->常规->字符集->使用多字节字符集”

2.用TCHAR*代替char*,用WORD*代替unsigned char*



next:

CString str = "abcd";
unsigned char* pC = (unsigned char*)(LPCTSTR)str;


CString s("ABC");
unsigned char *puc = (unsigned char*)s.GetBuffer( s.GetLength() );
...;//必须等指针使用完之后才能进行下一条释放命令。
s.ReleaseBuffer();


阅读(5649) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~