ObjectARX, AutoCAD. Среда программирования библиотеки C++

Управление использованием памяти расширенными данными


Расширенные данные ограничены 16 килобайтами в примитив. Поскольку расширенные данные примитива могут быть созданы и поддерживаться множественными приложениями, это может вести к проблемам, когда размер расширенных данных приближается к его пределу.

ObjectARX обеспечивает две функции, acdbXdSize () и acdbXdRoom (), помогать в управлении памятью, которая простиралась, данные занимают. Когда acdbXdSize () пропускают список буфера результата расширенных данных, это возвращает объем памяти (в байтах) который данные займут; когда acdbXdRoom () пропускают имя примитива, это возвращает остающееся число свободных байтов, которые могут все еще быть добавлены в конец к примитиву.

AcdbXdSize () функция должна читать расширенный список данных, который может быть большой. Следовательно, эта функция может быть медленна, так что рекомендуется, чтобы Вы не вызвали это часто. Лучший подход состоит в том, чтобы использовать это (вместе с acdbXdRoom ()) в обработчике ошибки. Если запрос к acdbEntMod () сбои, Вы можете использовать acdbXdSize () и acdbXdRoom () чтобы выяснить, потерпел ли запрос неудачу, потому что примитив исчерпал расширенные данные, и затем брать соответствующее действие, если это - причина для отказа{*неудачи*}.



Содержание раздела