Using CString
В следующих подразделах этого раздела описывается программирование с использованием CString. Справочные сведения о классе CString см. в документации по CStringT.
Чтобы использовать CString, включите заголовок atlstr.h.
Классы CString, CStringA и CStringW являются специализациями шаблона класса CStringT и основаны на типе поддерживаемых символьных данных.
Объект CStringW содержит тип wchar_t и поддерживает строки Юникода. Объект CStringA содержит тип char и поддерживает строки с однобайтовой и многобайтовой кодировкой. Объект CString поддерживает тип char или тип wchar_t в зависимости от того, какой символ определен во время компиляции — MBCS или UNICODE.
Объект CString хранит символьные данные в объекте CStringData. CString принимает строки с завершающим байтом null в стиле C, однако не сохраняет символ null в хранимых символьных данных. Вместо этого CString отслеживает длину строки. CString не предоставляет знак завершения NULL при экспорте строки в стиле C. Вы можете вставить null в CString, однако это может привести к непредвиденным результатам.
Следующий набор строковых классов можно использовать без привязки библиотеки MFC, как с поддержкой CRT, так и без нее: CAtlString, CAtlStringA и CAtlStringW.
CString используется в машинных проектах. Для проектов с управляемым кодом (C++/CLI) используйте System::String.
Чтобы добавить больше возможностей, чем предлагает CString, CStringA или CStringW, необходимо создать подкласс CStringT, содержащий дополнительные компоненты.
В следующем коде показано создание CString и его распечатка в стандартном выводе:
#include <atlstr.h>
int main() {
CString aCString = CString(_T("A string"));
_tprintf(_T("%s"), (LPCTSTR) aCString);
}
В этом подразделе
Базовые операции CString
Описывает базовые операции CString, включая создание объектов из строковых литералов C, доступ к отдельным символам в CString, объединение двух объектов и сравнение объектов CString.Управление строковыми данными
Описывает использование Юникода и многобайтовой кодировки с CString.Семантика CString
Поясняет использование объектов CString.Операции CString, связанные со строками в стиле C
Описывает операции с содержимым объекта CString как со строкой с завершающим нулевым байтом в стиле C.Выделение и освобождение памяти для BSTR
Описывает использование памяти для BSTR и COM-объектов.Очистка исключений CString
Поясняет, что явная очистка в MFC 3.0 и последующих версий больше не требуется.Передача аргументов CString
Поясняет, как передать объекты CString в функции и как вернуть объекты CString из функций.Поддержка Юникода и многобайтовой кодировки
Описывает реализацию поддержки Юникода и многобайтовой кодировки в MFC.
Ссылки
CStringT
Содержит справочные сведения о классе CStringT.CSimpleStringT Class
Содержит справочные сведения о классе CSimpleStringT.
Связанные подразделы
Strings (ATL/MFC)
Содержит ссылки на разделы, в которых описаны несколько способов управления строковыми данными.Создание экземпляра шаблона классов
CString представляет собой typedef, основанный на CStringT, экземпляре специализации шаблона класса.