Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: begiz от 15-07-2014, 10:19:04

Название: миграция на ObjectARX 2015
Отправлено: 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

Спасибо
Название: Re: миграция на ObjectARX 2015
Отправлено: Александр Ривилис от 15-07-2014, 13:21:46
Приветствую на нашем форуме. Ну почему себя так ведёт отладчик в Mixed Mode я не скажу - не пользуюсь, а вот зачем ты создаёшь неправильный список Xrecord я понять не могу.
Проверь значение es = pRec->setFromRbChain(*data); у меня оно eInvalidDxfCode
Для проверки замени RTREAL на 41 в вызове acutBuildList
Название: Re: миграция на ObjectARX 2015
Отправлено: begiz от 15-07-2014, 13:46:14
Добрый день, Александр

А как вы получили eInvalidDxfCode(50)? через вывод в консоль?

Оказалось : RTREAL != AcDb::kDxfReal (40) в ObjectARX 2015.

Сейчас все заработало как положено.

Спасибо
Название: Re: миграция на ObjectARX 2015
Отправлено: Александр Ривилис от 15-07-2014, 13:50:08
А как вы получили eInvalidDxfCode(50)? через вывод в консоль?
Да.
Оказалось : RTREAL != AcDb::kDxfReal (40) в ObjectARX 2015.
Никогда ни в какой версии ObjectARX RTREAL не равнялся AcDb::kDxfReal (40)
Последние двадцать пять лет RTREAL равен 5001 :)
Название: Re: миграция на ObjectARX 2015
Отправлено: begiz от 15-07-2014, 14:02:05
Цитировать
Никогда ни в какой версии ObjectARX RTREAL не равнялся AcDb::kDxfReal (40)
Последние двадцать пять лет RTREAL равен 5001 :)
так точно!
но почему то раньше такой вариант записи работал как надо :)
за DXF обращался только для всяких kDxfHardPointerId и подобных.
Название: Re: миграция на ObjectARX 2015
Отправлено: Александр Ривилис от 15-07-2014, 14:13:17
но почему то раньше такой вариант записи работал как надо :)
Ну скорее всего это был баг, который теперь благополучно закрыли. Обычные DXF-коды не могут превышать значение 1000. Всё что >= 1000 - Xdata. Но и они не могут превышать 1071 (kDxfXdInteger32)
Название: Re: миграция на ObjectARX 2015
Отправлено: begiz от 15-07-2014, 15:24:42
Буг исправлен, клиент доволен, программист счаслив(спокоен).

Спасибо.
Название: Re: миграция на ObjectARX 2015
Отправлено: Александр Ривилис от 15-07-2014, 15:31:28
Пожалуйста! Заходите еще. :)
Название: Re: миграция на ObjectARX 2015
Отправлено: begiz от 16-07-2014, 09:32:07
Получил ответ из 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.
Название: Re: миграция на ObjectARX 2015
Отправлено: Александр Ривилис от 16-07-2014, 14:19:22
Получил ответ из ADN.
А почему при регистрации на форуме не указал ADN ID? Заполни!
Название: Re: миграция на ObjectARX 2015
Отправлено: begiz от 16-07-2014, 14:34:50
К сожелению оным не обладаю.
В поиске решения обращался к коллегам с доступом.
Название: Re: миграция на ObjectARX 2015
Отправлено: Александр Ривилис от 16-07-2014, 17:22:30
В поиске решения обращался к коллегам с доступом.
Понятно. Этот форум создан именно для того, чтобы на вопрос, на который мы сами не можем найти ответ, передавался в ADN DevHelp для получения помощи. Так что можешь эти вопросы задавать здесь. И именно здесь получение ответа от ADN DevHelp для не членов ADN легально.
Название: Re: миграция на ObjectARX 2015
Отправлено: begiz от 16-07-2014, 17:24:23
Понял.
Уже задаю :)

Спасибо