加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

VC++.NET 2005,无法从const char转换为const cstring问题的解决

(2012-02-20 17:50:56)
标签:

杂谈

分类: 计算机语言
因为要上这门课,最近备课中,以前没怎么搞过,拿到的教材上的VS实例中的软件版本实在太过时了,结果第一个程序就没搞出来。我只想打印一个"Hello, world!"而已,结果报错“无法从const char转换为const cstring”,查了一通发现原来是VS 2005之后项目所使用的字符集改了,现在使用的是unicode字符集,需要在“项目-属性”中将"unicode字符集"换成"多字节字符集",试了一下,搞定!

如果不想改变字符集,将文本内容放在_T()里面也可以解决问题。

若是使用unicode的话,MessageBox会被替换成MessageBoxW,否则是MessageBoxA。

另附:unicode下数据类型转换:

CString转int
CString b="123";
int i;
i=_ttoi(b); //在使用多字符集下 _atoi(array to integer 的缩写)函数是一个好的选择,它也很少会是一个正确的选择。而在使用 Unicode 字符,你应该用_ttoi(),它在 ANSI 编码系统中被编译成_atoi()

int型转CString型
CString a;
int b=20;
a.Format(_T("%d"),b); //_T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode还是ANSI)字符处理方式,TEXT,_TEXT 和_T 是一样的

CString型转double型
CString strs;
double f;
f=_ttol(strs);

CString型转float型
CString strs;
float flt;
flt = (float)atof((char *)(LPTSTR)(LPCTSTR)strs);

P.S.

多字节字符 英文1个字节,中文2个字节
unicode 英文2字节 中文2字节

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有