Сообщество программистов Autodesk в СНГ
ADN Club => ObjectARX => Тема начата: begiz от 15-07-2014, 10:19:04
-
Доброго времени суток, коллеги.
Столкнулся с проблемой при миграции на ObjectARX 2015 в mixed-mode(DLL).
К посту прицепил проект, сделаный ObjectARX Wizardom.
Там маленький кусочек кода который по каким то причинам перестал работать в 2015, но работал во всех версия от 2010 до 2014.
Пытаюсь записать xRecord и считать его обратно.
Что получается:
1. в отладке не вижу знчений Acad::errorStatus и resbuf (поетому и проверить не могу почему не работает, вывод значений в консоль как то не помог)
2. Если верить выводу в консоль, то xRecord создается и записывается куда надо. Но при чтении его же, ошибок нету но и значения тоже нету.
3. Тот же код и отлаживается и работает если проект не в mixed(DLL), а в native(ARX).
П.С. весь проект в mixed-mode и очень большой, т.е. перевод в native - не вариант.
Подскажите где я чего не дочитал в migration guide или чего там не написано?
Win7 64-bit
VS2012 SP4
ACAD 2015 64-bit
Спасибо
-
Приветствую на нашем форуме. Ну почему себя так ведёт отладчик в Mixed Mode я не скажу - не пользуюсь, а вот зачем ты создаёшь неправильный список Xrecord я понять не могу.
Проверь значение es = pRec->setFromRbChain(*data); у меня оно eInvalidDxfCode
Для проверки замени RTREAL на 41 в вызове acutBuildList
-
Добрый день, Александр
А как вы получили eInvalidDxfCode(50)? через вывод в консоль?
Оказалось : RTREAL != AcDb::kDxfReal (40) в ObjectARX 2015.
Сейчас все заработало как положено.
Спасибо
-
А как вы получили eInvalidDxfCode(50)? через вывод в консоль?
Да.
Оказалось : RTREAL != AcDb::kDxfReal (40) в ObjectARX 2015.
Никогда ни в какой версии ObjectARX RTREAL не равнялся AcDb::kDxfReal (40)
Последние двадцать пять лет RTREAL равен 5001 :)
-
Никогда ни в какой версии ObjectARX RTREAL не равнялся AcDb::kDxfReal (40)
Последние двадцать пять лет RTREAL равен 5001 :)
так точно!
но почему то раньше такой вариант записи работал как надо :)
за DXF обращался только для всяких kDxfHardPointerId и подобных.
-
но почему то раньше такой вариант записи работал как надо :)
Ну скорее всего это был баг, который теперь благополучно закрыли. Обычные DXF-коды не могут превышать значение 1000. Всё что >= 1000 - Xdata. Но и они не могут превышать 1071 (kDxfXdInteger32)
-
Буг исправлен, клиент доволен, программист счаслив(спокоен).
Спасибо.
-
Пожалуйста! Заходите еще. :)
-
Получил ответ из ADN.
Вы как всегда были правы насчет DXF.
Но выяснилось почему рансе работало.
До 2015 они просто не провериали чего в xRecord скармливается :)
I have received feedback from Development team, it turned out the resbuf chain fed to the xrecord doesn’t contains valid DXF codes , from 2015 ACAD checks for valid codes that put to xrecord resbuf chain.
-
Получил ответ из ADN.
А почему при регистрации на форуме не указал ADN ID? Заполни!
-
К сожелению оным не обладаю.
В поиске решения обращался к коллегам с доступом.
-
В поиске решения обращался к коллегам с доступом.
Понятно. Этот форум создан именно для того, чтобы на вопрос, на который мы сами не можем найти ответ, передавался в ADN DevHelp для получения помощи. Так что можешь эти вопросы задавать здесь. И именно здесь получение ответа от ADN DevHelp для не членов ADN легально.
-
Понял.
Уже задаю :)
Спасибо