用vc2008编写代码时,这样的语句会报错
CString str;
int nStr = atoi(str);
error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”
1> 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
这是因为VC2008默认使用UNICODE编码的字符串,转化后的字符串是const wchar*
所以是不能强制转化的,这时,可以使用一种简单的方法来解决:
使用函数_ttoi,把只能接受多字节编码(MBCS)参数的atoi转换成同时支持宽字符编码和多字节编码
的通用函数_ttoi
CString str;
int nStr = _ttoi((LPCTSTR)str);