Using 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 样式字符串,但是不在已存储的字符数据中保留 null 字符。 相反,CString 跟踪字符串长度。 CString 在导出 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);
}

本节内容

参考

相关章节

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

  • 类模板实例化
    CString 是基于 CStringT 的 typedef,它是类模板的专用化的实例。

Strings (ATL/MFC)