使用 CString

本部分中的主题介绍如何使用 CString 进行编程。 有关 CString 类的参考文档,请参阅 CStringT 的文档。

若要使用 CString,请包含 atlstr.h 标头。

CStringCStringACStringW 类是称为 CStringT 的类模板的专用化,此类模板基于它们所支持的字符数据类型。

CStringW 对象包含 wchar_t 类型并支持 Unicode 字符串。 CStringA 对象包含 char 类型,并支持单字节和多字节 (MBCS) 字符串。 CString 对象支持 char 类型或 wchar_t 类型,具体取决于 MBCS 符号还是 UNICODE 符号是在编译时定义的。

CString 对象在 CStringData 对象中保留字符数据。 CString 接受以 NULL 结尾的 C 样式字符串。 CString 跟踪字符串长度以提高性能,但它还会保留存储的字符数据中的 NULL 字符以支持转换为 LPCWSTRCString 在导出 C 样式字符串时不提供 null 终止符。 可以在 CString 的其他位置插入 NULL,但是这可能会产生意外结果。

以下一组字符串类可在未链接 MFC 库的情况下使用,无论是否有 CRT 支持:CAtlStringCAtlStringACAtlStringW

CString 在本机项目中使用。 对于托管代码 (C++/CLI) 项目,请使用 System::String

若要添加多于 CStringCStringACStringW 当前所能提供的功能,你应该创建包含其他功能的 CStringT 的子类。

以下代码显示如何创建 CString 并将其打印到标准输出中:

#include <atlstr.h>

int main() {
    CString aCString = CString(_T("A string"));
    _tprintf(_T("%s"), (LPCTSTR) aCString);
}

本节内容

基本 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) 支持
讨论如何为 Unicode 和 MBCS 支持启用 MFC。

参考

CStringT
提供有关 CStringT 类的参考信息。

CSimpleStringT
提供有关 CSimpleStringT 类的参考信息。

字符串 (ATL-MFC)
包含指向介绍管理字符串数据的多种方法的主题的链接。

字符串 (ATL-MFC)