Тема: растр не добавляется
Здравствуйте.
Пытаюсь добавить растр (путь типа \\server\sharefolder\raster.ext, там нормальный jpg).
Нашел исходники старого приложения, где это работало.
Вставил себе, и получаю странную ошибку 409 - eNoClassId при добавлении в словарь.
Не понимаю, какой класс нужен словарю.
AcDbBlockTableRecord *pModel = NULL; AcDbDictionary* pDictionary = NULL; AcDbRasterImage *pAcDbRasterImage = NULL; AcDbRasterImageDef* pAcDbRasterImageDef = NULL; AcDbObjectId parObjectId; // это пробовал добавить после поисков на форуме - не помогает // AcAxDocLock docLock(acdbHostApplicationServices()->workingDatabase(),AcAxDocLock::kNormal); // обеспечиваем словарь для растров pModel = prims.openModelspace(AcDb::kForWrite); AcDbDatabase *pBase = acdbHostApplicationServices()->workingDatabase(); AcDbObjectId DictionaryId = AcDbRasterImageDef::imageDictionary(pBase); if (DictionaryId.isNull()) if (Acad::eOk != AcDbRasterImageDef::createImageDictionary(pBase, DictionaryId)) throw "не удалось создать словарь для растров."; if (Acad::eOk != acdbOpenObject((AcDbObject*&)pDictionary, DictionaryId, AcDb::kForWrite)) throw "не удалось открыть словарь для растров."; m_imageDefName = "raster_" + id; if (pDictionary->has(m_imageDefName)) pDictionary->getAt(m_imageDefName, parObjectId); // уже грузилось else { // первая загрузка pAcDbRasterImageDef = new AcDbRasterImageDef(); if ( Acad::eOk != pAcDbRasterImageDef->setSourceFileName( cs2ws(path)) ) throw string("Ошибка имени файла растра [") + path + "]"; if ( Acad::eOk != pAcDbRasterImageDef->load() ) throw string("Ошибка загрузки описания растра из файла [") + path + "]"; int res = pDictionary->setAt(m_imageDefName, pAcDbRasterImageDef, parObjectId); // здесь res==409 - eNoClassId if ( Acad::eOk != res ) throw string("Ошибка занесения в словарь описания растра из файла [") + path + "], код: " + AS(res) + "."; pAcDbRasterImageDef->close(); pAcDbRasterImageDef = NULL; } pDictionary->close(); pDictionary = NULL;
Вразумите, пожалуйста, куда копать?
Какой класс надо дать словарю?
Acad 2010, objArx2010, VS 2008, winXP.