VS2008下的一点编程体会 漫漫编程路
来源:互联网 发布:淘宝实体店 编辑:程序博客网 时间:2024/06/05 05:15
1、将CString转换为char*
原来用VC6.0那有这些繁琐事情啊,现在用了VC2008开始还是有些不习惯,不过VS2008对C++标准更近了,慢慢熟悉起来就会好的。最多的问题就是在VC6.0中编译通过的代码转换到2008之后报致命错误,不过大部分都能一一修改过来,最近就是碰到了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*,每次转换都要写一堆上面的过程
下面的方法貌似也可以,但是没有试过
wchar_t wszText[] = L"Unicode string";
char szText[100];
WideCharToMultiByte(CP_ACP, 0, wszText, -1, szText, 100, NULL, NULL);
2、CString 转为 int
VS2008默认的编码方式是Unicode,Unicode下不能用atoi,而要使用_wtoi也可以直接使用_ttoi,它在 ANSI 编码系统中被编译成atoi(),而在 Unicode 编码系统中编译成_wtoi()。
例如:
CString str = _T("134258");
int a = _ttoi(str);
3、声明数组时候,数组的大小不能用变量,估需要声明动态数组
int days1[n]={0};
改成
int *days1 = new int[n];
用完后,要记得delete []days1;
- VS2008下的一点编程体会 漫漫编程路
- VC下ListBox的一点编程体会
- Qt编程的一点体会
- 编程学习的一点体会
- 程序编程的一点体会
- 学习windows编程的一点体会
- 关于做编程练习的一点体会
- 编程路漫漫~
- 漫漫编程路
- 从编程菜鸟到入门的一点体会
- 关于编程的一点体会(Tips,持续更新中)
- 机械与编程我的人生路漫漫
- VS2008 下的 gSOAP编程 客户端
- vs2008下的C/C++混合编程
- 对编程的体会
- 编程的一些体会
- 杂碎的编程体会
- 漫漫编程路上学到的宝贵经验
- 通用css样式
- JS select列表内容按拼音排序
- 对上线步骤和配置选项的理解
- 自定义输入法对话框
- 关于网络的点点滴滴
- VS2008下的一点编程体会 漫漫编程路
- 在程序运行的时候必须区分程序时间跟数据库时间
- How to add an editable checkbox at JFace TableViewer
- WEB前端开发规范文档
- (转载zhaoge010203)毕业那年,老师站在讲台上,只问了三个问题!
- Flex全屏
- ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法
- 字号与 pt 的对应关系
- 字号与 pt 的对应关系