MFC :atoi不能将"CString" 转化为"char *"
来源:互联网 发布:关于交通事故的数据 编辑:程序博客网 时间:2024/05/15 01:01
最近碰到了CString 转 const char *的问题。
以前只要简单的一个强制转换就OK了,可现在是不行了,搜索了很多资料,终于搞定,主要是Unicode和ANSI的问题,只要做一个转换就可以了,不过这个过程远没有6.0来的那么轻松。下面这段转换代码也是从MSDN上获取的。
CString str=_T(“这是我的测试程序。”);
// 先得到要转换为字符的长度
const size_t strsize=(str.GetLength()+1)*2; // 宽字符的长度;
char * pstr= new char[strsize]; //分配空间;
size_t sz=0;
wcstombs_s(&sz,pstr,strsize,str,_TRUNCATE);
int n=atoi(const char*)pstr); // 字符串已经由原来的CString 转换成了 const char*
//没有这番转换会报错,无法将LPCTSTR或CString 转换为const char*
就是每次转换都要写一堆上面的过程了,呵呵。
上边是比较笨的方法,不过可以理解一下原理,接下来说说简单的。
个人比较推荐下面这种,当你的代码中要转的比较多时,用这个特别方别且简单。。。
另外一种方法:
CString str(“1234”);
int i= _ttoi(str);
在ANSI 和 UNICODE 都可以用的代码
阅读全文
0 0
- MFC :atoi不能将"CString" 转化为"char *"
- MFC CString转化为char*
- MFC中如何将CString转化为char类型
- 将CString转化为char*
- 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 *”))
- 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 *”))
- Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
- CString 转化为 char*
- VS2008下面将 CString转化为char* 的问题
- 将char型数组转化为CSTring型字符串
- Android学习笔记10---Intent
- vue项目打包后打开空白解决办法
- 训练集---dp崭露头角篇
- NOIP 考前提醒
- Asp.Net添加水印
- MFC :atoi不能将"CString" 转化为"char *"
- oracle 10g之 max 、min的写法
- SQL Server 数据库表结构导出
- BZOJ 4726 [POI 2017] 树DP 解题报告
- 伺服电机、舵机、步进电机的区别
- 复制对象时不要忘记每一个成分
- 链式队列一种实现
- UVa1388
- FYN OI 奋斗之路7~