使用CString
使用 CString,本节中的主题介绍编程。
CString、 CStringA和 CStringW 用于一般C++开发可用的特定于Microsoft的字符串选件类。
CStringA 对象包含基于 char 类型的字符串数据,并支持单字节和多字节(MBCS)字符串。 同样,CStringW 对象包含基于 wchar_t 类型的字符串数据,并且支持Unicode字符串。 CString 对象支持 char 类型或 wchar_t 类型。 哪个它支持取决于使用的符号,MBCS 或 UNICODE,在编译时定义。
CString 对象在 CStringData 对象保留字符数据。 CString 中存储的字符数据接受Null终止的C样式字符串,但是,不保留在null字符。 相反,CString 跟踪字符串的长度。 该导出c.样式字符串时,CString 提供null结束符。 可以插入到存储的字符数据中的null字符,但是,这可能导致意外的结果。
CString 用于本机项目。 对于托管代码(C++/CLI)项目,请使用 System::String。
CString、 CStringA和 CStringW 在 atlstr.h 定义并从 MFC90.dll导出。 CStringT 在 cstringt.h定义。 以下设置字符串选件类可以使用,但不链接MFC库,有或没有CRT支持: CAtlString、 CAtlStringA和 CAtlStringW。
CString、 CStringA和 CStringW 选件类是调用 CStringT的选件类模板的实例。 利用这些模板编程技术调用的专用化。 每个实现为基于专用的字符数据类型的模板选件类的 typedefCStringT 它们支持。 它们不定义它们的方法。 相反,它们依赖 CStringT定义的控件,专用与它们包含的字符数据一起使用。
若要添加更多功能比 CString,CStringA或 CStringW 当前提供,考虑创建包含其他功能 CStringT 的子类。 然后创建类似于 CString 的实例,但根据 CStringT子类。
本节内容
基本CString操作
描述基本的 CString 操作,包括创建从C字符串的对象,访问各个字符在 CString,连接两个对象和比较 CString 对象。字符串数据管理
讨论使用Unicode和MBCS与 CString。CString语义
解释如何使用 CString 对象。用C样式字符串相关的CString操作
操作 CString 对象的内容是否与c.样式Null终止的字符串的封。分配和释放BSTR的内存
使用 BSTR 和COM对象,内存讨论。CString异常清理
解释在MFC 3.0的显式清除和之后不再是必需的。CString传递
解释如何通过对函数的CString对象以及如何从返回的函数的 CString 对象。Unicode和多字节字符集(mbcs)支持
讨论MFC如何为支持Unicode,并支持MBCS。
参考
CStringT选件类.
提供有关共享 CStringT 选件类的信息。CSimpleStringT选件类
提供有关共享 CSimpleStringT 选件类的信息。
相关章节
字符串(ATL/MFC)
包含指向描述几种方法来管理字符串数据的主题。选件类模板实例化
CString 是基于 CStringT的 typedef,选件类模板的专用化的实例。