Класс 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.