CString const char*与char*之间的转换关系
来源:互联网 发布:淘宝女装模特拍摄教程 编辑:程序博客网 时间:2024/05/21 11:06
CString是个好东西,有很多好用的成员函数,并且动态分配内存空间。但在MFC学习初期,容易把CString与const char*,char*混淆。遇到三种类型数据转换时,总是得过且过。下面就剖析一下三者之间的转换关系与方法。
1、CString与const char*(LPCTSTR---是在Unicode环境下const char*的宏定义)
CString类提供一个const char*()把CString类型转换为LPCTSTR类型。
比如AfxMessageBox()的使用,可以采用:
char szMessageText[] = "Unknown error";
AfxMessageBox(szMessageText);
AfxMessageBox(szMessageText);
也可以这样:
CString strMessageText("Unknown ;error");
AfxMessageBox(strMessageText);
AfxMessageBox(strMessageText);
CString类也提供了一个构造函式把LPCTSTR类型转换为CString类型。比如:
CString strTruth;
strTruth += " is alive";
2、CString与char*
调用CString::GetBuffer在Buffer中开辟一定大小的空间并返回一个char*。注意要在使用完char*后要调用CString::ReleaseBuffer以此保证CString的动态性。例如:
CString strTest("test");strncpy(strTest.GetBuffer(5), "T", 1);strTest.ReleaseBuffer();ASSERT(strTest == "Test");
编写以字符串为参数的函数所遵循的规则:
a、如果函数不改写字符串的内容并且要调用C Runtime的函数,那么函数要用const char*类型参数;
b、如果函数不改写字符串的内容并且要调用CString的成员函数,那么函数要用const CString&类型参数;
c、如果函数要改写字符串的内容,那么函数要用CString&类型参数。
0 0
- CString const char*与char*之间的转换关系
- CString const char*与char*之间的转换关系
- CString const char*与char*之间的转换关系
- CString const char*与char*之间的转换关系
- CString const char*与char*之间的转换关系
- const char *,char * ,string,char []之间的关系和转换
- CString与const char*的相互转换
- string 与char*,const char*, char[]之间的转换
- string 与char* 、char[]、const char*之间的转换
- CString与const char*转换
- CString与const char*转换
- CString与const char*转换
- CString与const char*转换
- CString与char*,const char* 的相互转换问题
- CString与char*,const char* 的相互转换问题
- CString与char*,const char* 的相互转换
- CString与char*之间的转换
- CString与 char *之间的转换
- appium for windows 环境搭建
- 当LogCat上面的日志不能输出怎么办?
- linux如何复制文件夹和移动文件夹
- (1) git/github原理与基本操作ABC中的ABC
- Kafka分布式消息系统介绍
- CString const char*与char*之间的转换关系
- C++11 中的线程、锁和条件变量
- spring security3.x学习(19)_tomcat的SSL
- Android的Service相关
- Hibernate(三)Criteria查询
- Linux socket编程(一) 对套接字操作的封装
- Linux socket编程(二) 服务器与客户端的通信
- Oracle找回密码
- 第17周项目3-胖子伤不起