error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *"
2013-09-13 14:32
701 查看
Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
2011-11-24 22:20
2011-11-24 22:20
在vc6.0下用CString str;num = atoi(str);就可以顺利取到num; 但是同样代码拿到vs2008就报错,error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”; 于是把CString 强制转换为char*,num = atoi((LPSTR)(LPCTSTR)str); 编译不报错,运行成功。但是后面发现,本来str="123",num应该是123,结果却只是1,试了其他的都是只取最前面一位。 后面百度中无意发现,原来是,vc6.0默认是ansi编码,所以atoi可以直接用,结果也正确;但是VS2008默认的编码方式是Unicode,Unicode下不能用atoi,而要使用_wtoi 也可以直接使用_ttoi,它在 ANSI 编码系统中被编译成atoi(),而在 Unicode 编码系统中编译成_wtoi()。或者把vs改成ansi编码也行。 num = _ttoi(str);(_ttoi类似于_T,随着编码方式会改变)。 |
相关文章推荐
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- error C2664:char *strcpy(char *,const char *)& 无法将参数 2 从CString"转换为const char *
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- VS2010下error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”
- Cstring 转 int 型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- error C2664: "sendto": 不能将参数 2 从"CString"转换为"const char *"
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”
- error C2664: “ATL::CStringT<BaseType,StringTraits>::Remove”: 不能将参数 1 从“const char [2]”转换为“char”
- 关于CString剖析,"strcmp": 不能将参数1从"CString”"转换为"const char *"问题
- error C2664: “strcpy”: 不能将参数 2 从“CString”转换为“const char *”
- C++: VC6转VC8出现问题:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *” from http://www.cnblogs.com/moon2bird/archive/2009/02/27/1399675.html
- C++: VC6转VC8出现问题:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”
- error C2664:不能将参数 1 从“CString”转换为“const char *”
- C++: VC6转VC8出现问题:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”