Поделиться через


Класс IAtlStringMgr

Этот класс представляет интерфейс диспетчера CStringT памяти.

Синтаксис

__interface IAtlStringMgr

Участники

Методы

Имя Описание
Размещать Вызовите этот метод, чтобы выделить новую структуру строковых данных.
Клонировать Вызовите этот метод, чтобы вернуть указатель на новый диспетчер строк для использования с другим экземпляром CSimpleStringT.
Бесплатно Вызовите этот метод, чтобы освободить структуру строковых данных.
GetNilString Возвращает указатель на объект, используемый CStringData пустыми строковыми объектами.
Перераспределить Вызовите этот метод, чтобы перераспределить структуру строковых данных.

Замечания

Этот интерфейс управляет памятью, используемой классами строк, независимыми от MFC; например CSimpleStringT, CStringT и CFixedStringT.

Этот класс также можно использовать для реализации пользовательского диспетчера памяти для пользовательского класса строк. Дополнительные сведения см. в разделе "Управление памятью" и CStringT.

Требования

Заголовок: atlsimpstr.h

IAtlStringMgr::Allocate

Выделяет новую структуру строковых данных.

CStringData* Allocate(int nAllocLength,int nCharSize) throw();

Параметры

nAllocLength
Количество символов в новом блоке памяти.

nCharSize
Размер (в байтах) типа символа, используемого диспетчером строк.

Возвращаемое значение

Возвращает указатель на начало выделенного блока памяти.

Примечание.

Не сигнализируют о неудачном выделении, вызывая исключение. Вместо этого следует сигнализировать о неудачном выделении, возвращая ЗНАЧЕНИЕ NULL.

Замечания

Вызовите IAtlStringMgr::Free или IAtlStringMgr::ReAllocate , чтобы освободить память, выделенную этим методом.

Примечание.

Примеры использования см. в разделе "Управление памятью" и CStringT.

IAtlStringMgr::Clone

Возвращает указатель на новый диспетчер строк для использования с другим экземпляром CSimpleStringT.

IAtlStringMgr* Clone() throw();

Возвращаемое значение

Возвращает копию объекта IAtlStringMgr.

Замечания

Обычно вызывается платформой, когда для новой строки требуется диспетчер строк. В большинстве случаев this возвращается указатель.

Однако если диспетчер памяти не поддерживает использование несколькими экземплярами CSimpleStringT, необходимо вернуть указатель на совместно используемый диспетчер строк.

Примечание.

Примеры использования см. в разделе "Управление памятью" и CStringT.

IAtlStringMgr::Free

Освобождает строковую структуру данных.

void Free(CStringData* pData) throw();

Параметры

pData
Указатель на блок памяти для освобождения.

Замечания

Освобождает указанный блок памяти, ранее выделенный выделением или перераспределять.

Примечание.

Примеры использования см. в разделе "Управление памятью" и CStringT.

IAtlStringMgr::GetNilString

Возвращает указатель на структуру строковых данных для пустой строки.

CStringData* GetNilString() throw();

Возвращаемое значение

Указатель на CStringData объект, используемый для представления пустой строки.

Замечания

Вызовите эту функцию, чтобы вернуть представление пустой строки.

Примечание.

При реализации пользовательского диспетчера строк эта функция никогда не должна завершаться ошибкой. Это можно обеспечить, встраивая экземпляр в класс диспетчера CNilStringData строк и возвращая указатель на этот экземпляр.

Примечание.

Примеры использования см. в разделе "Управление памятью" и CStringT.

IAtlStringMgr::Reallocate

Перераспреждает структуру строковых данных.

CStringData* Reallocate(
    CStringData* pData,
    int nAllocLength,
    int nCharSize) throw();

Параметры

pData
Указатель на память, выделенную ранее этим диспетчером памяти.

nAllocLength
Количество символов в новом блоке памяти.

nCharSize
Размер (в байтах) типа символа, используемого диспетчером строк.

Возвращаемое значение

Возвращает указатель на начало выделенного блока памяти.

Замечания

Вызовите эту функцию для изменения размера существующего блока памяти, указанного pData.

Вызовите IAtlStringMgr::Free , чтобы освободить память, выделенную этим методом.

Примечание.

Примеры использования см. в разделе "Управление памятью" и CStringT.

См. также

Диаграмма иерархии
Общие классы ATL/MFC