Fatal errors в arx приложениях под Autocad 2015, 2016 при пробном режиме

Автор Тема: Fatal errors в arx приложениях под Autocad 2015, 2016 при пробном режиме  (Прочитано 14044 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Обнаружил неожиданную проблему. Скачал с сайта Автодеска Autocad 2015,2016 запускаю в пробном 30 дневном режиме.
Установил проверенное работающее свое приложение. Все arx файлы грузятся, но результат ошеломляющий - все arx функции и команды возвращают Fatal errors. Сравнил загруженные arx и dll в пробной версии и в авторизованной - списки разные. Отличие в следующем: для скачаной try версии  ("acapp.arx" "acapp.crx" "acautoloader.arx" "accloudconnect.crx" "accoremgd.dll" "acdim.arx" "acdim.crx" "acgsconfig.arx" "acgsconfig.crx" "aclaunchnfw.arx" "acmgd.dll" "acopmext.arx" "acpi.arx" "acsign.arx" "acvmtools.crx" "vl.arx" "vl.crx")
для рабочей версии ("acapp.arx" "acapp.crx" "acautoloader.arx" "accloudconnect.crx" "accoremgd.dll" "acdim.arx" "acdim.crx" "acexperience.arx" "acgsconfig.arx" "acgsconfig.crx" "acjscorestub.crx" "aclaunchnfw.arx" "acmgd.dll" "acsign.arx" "acvmtools.crx" "basecode.dll" "cellar.dll" "core.dll" "profile.dll" "vl.arx" "vl.crx"). Различия явные. Т.е. TRY (пробный) режим идет что-ли в урезанном виде и поэтому arx приложения работать не будут и выдают фаталы?
Проблема очень серьезная, думаю даже глобальная. Как таким образом люди будут проверять приложения на try версиях Autocad и других продуктах Автодеска. Последствия печальные если это на самом деле так. У кого есть какие идеи, соображения на этот счет уважаемое общество разработчиков?  Кто с этим сталкивался?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Думаю, что копать нужно совсем в другую сторону. А именно ищи ошибки в своей программе. Например, проверяй curDoc() на NULL.

P.S.: Все мои приложения сразу заработали в триальной версии без вылетов. Впрочем, можешь проверить.
Например:
http://www.maestrogroup.com.ua/support/ExplodeProxy.zip
http://www.maestrogroup.com.ua/support/DWGConvert.zip
http://www.maestrogroup.com.ua/support/selsim.zip

P.S.S.: Этих файлов в AutoCAD 2015 и 2016 я не нашел: "basecode.dll" "cellar.dll" "core.dll" "profile.dll", так что они явно лишние.
Вот на всякий случай список (arx) в моём AutoCAD 2016 Russian:
Цитировать
Команда: (arx) ("acapp.arx" "acapp.crx" "acautoloader.arx" "acautoloader.crx" "accloudconnect.crx" "acconnectwebservices.arx" "accoremgd.dll" "acdim.arx" "acdim.crx" "acetutil.arx" "acexperience.arx" "acgsconfig.arx" "acgsconfig.crx" "acjscorestub.crx" "aclaunchnfw.arx" "acmgd.dll" "acsceneoe.dbx" "acsceneui.arx" "acsceneui.crx" "acsign.arx" "acvmtools.crx" "vl.arx" "vl.crx")

 
« Последнее редактирование: 22-04-2015, 19:49:51 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Думаю, что копать нужно совсем в другую сторону. А именно ищи ошибки в своей программе. Например, проверяй curDoc() на NULL.
Спасибо, стало немного легче. Хотелось бы узнать, а как вообще такое возможно на одной и той же версии Автокада возьмем 2015 в рабочем режиме все работает без фаталов, а в пробной режиме все фаталит. Какова природа этой проблемы. Никогда не думал что такое возможно. Если есть соображения, поделись, пожалуйста, очень интересно.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Например, arx-файл загружается в триальной версии в тот момент, когда на экране запрос об авторизации и еще нет ни одного открытого документа, а в рабочей версии уже в тот момент, когда хотябы один документ есть.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Например, arx-файл загружается в триальной версии в тот момент, когда на экране запрос об авторизации и еще нет ни одного открытого документа, а в рабочей версии уже в тот момент, когда хотябы один документ есть.
Теперь понятно. Думаю в этом и есть проблема. Как тогда быстро это исправить? Если у тебя есть кусок кода обходящий эту проблему, поделись пожалуйста или дай ссылку, может где то показано как это обходить. Думаю это же что то универсальное, а не специфическое для каждого приложения.

Оффлайн Николай Горлов

  • ADN
  • *
  • Сообщений: 238
  • Карма: 34
скорей всего проблема в классах, унаследованных от AcApDocManagerReactor. Например в функциях documentBecameCurrent, documentToBeActivated, documentCreated... короче говоря, нужно перелопатить весь код и выяснить, где идет обращение к AcApDocument или к curDoc() [<-это может быть где угодно :) ]. Ну и скорей всего вставить проверку на наличие этого самого документа
 if (pDoc == NULL) return;

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
скорей всего проблема в классах, унаследованных от AcApDocManagerReactor.
Не только. В первую очередь нужно проверять нет ли обращения к текущему документу в On_kInitAppMsg.
if (pDoc == NULL) return;
Ну это ты уж слишком резко. Возможно нужно пропустить только кусок кода, который работает с текущим документом.
Но тут универсальности не получится, т.к. не понятно для чего в этом методе шла работа с текущим документом. Возможно придётся менять логику работы программы и переносить часть кода из On_kInitAppMsg в On_kLoadDwgMsg. Возможно и этого будет недостаточно. Без кода сказать сложно.

P.S.: Похожая тема: http://adn-cis.org/forum/index.php?topic=1925.0
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Проблема усложнилась или упростилась. Ситуация становиться все запутаннее. Только что установил пробную версию Автокада 2016 english, далее установил свое приложение, все работает без фаталов. Разница в том что сейчас установил на ноутбук, а на 2х стационарах идут фаталы. Операционка везде W7. Т.е. появляются новые причины - дело в железе? дело именно english или rusian версиях, что очень сомнительно? Если в железе и т.п. то какой смысл лезть в arx? Короче Автодеск мастер мозги загрузить. Продолжаю исследовать.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Короче Автодеск мастер мозги загрузить.
Боюсь, что причина совсем не в Autodesk, а в том, что кое-кто не отлаживает свои программы. ;) Очень сомневаюсь, что проблема в "железе" - разве что твоя программа лезет к "железу" (например используется какая-то хитрая система защиты).
Скорее всего дело в плавающей ошибке в твоём коде. Так что не ленись и тестируй.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение