Ошибка Acad::eWrongObjectType при вызове AcDbDictionary::setAt()
Что же может заставить при вызове AcDbDictionary::setAt() вернуть ошибку Acad::eWrongObjectType ?
К сожалению эта ошибка не документирована в ObjectARX SDK для метода AcDbDictionary::setAt, но может быть несколько причин, по которым вы можете столкнуться с этой ошибкой.
Если вы добавляете пользовательский объект (Custom object) в словарь, вы должны зарегистрировать его класс в AutoCAD. Если этого не сделать, то это может привести именно к этой ошибке.
В функции acrxEntryPoint в обработчике kInitAppMsg добавьте:
acrxBuildClassHierarchy () ;
В обработчике kUnloadAppMsg добавьте:
Если вы добавляете другой объект, который не является пользовательским объектом, или если вы сделали то, что описано выше, но ошибка все-равно возникает, то это означает, что вы пытаетесь добавить объект, который не может находиться в объекте AcDbDictionary – графический примитив (наследник AcDbEntity) .
Опубликовано 24.01.2022
Отредактировано 24.01.2022 в 17:20:29