Зависимость загрузки Автокад 2015 от ObjectARX приложения.

Автор Тема: Зависимость загрузки Автокад 2015 от ObjectARX приложения.  (Прочитано 12957 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • **
  • Сообщений: 66
  • Карма: 3
Привет всем форумчанам!
Я здесь впервые. Надеюсь, что поможете.

Имеется ObectARX приложение. Приложение работает начиная с Автокад 2004 и по Автокад 2014. При переходах на разные ObjectARX версии были разные нюансы, но все они успешно решались и приложение работало без проблем. Под ObjectARX 2015 тоже все перекомпилировал, по ходу справился с мелкими новшествами. Получил готовый ARX файл.

Далее действия такие:
- Открываю Автокад 2015. Прописываю в настройках путь к файлам программы, загружаю мой файл CUIX, далее через файл MNL подгружается автоматически файл ARX. Закрываю Автокад, чтобы сохранить настройки.
- Далее пытаюсь открыть Автокад 2015. При загрузке Автокад намертво зависает. Снимается только через диспетчер задач.
- Теперь интересное. Открываю Автокад через открытие файла DWG. Все открывается и работает.
- Далее. Поработав в файле, файл закрываю, файл нормально сохраняется, все результаты работы программы тоже. Далее пытаюсь выйти из Автокада - Автокад опять зависает намертво.

Что-то я, видимо, упустил при прочтении мигрэйшн гайд :(.
Заранее спасибо за помощь.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Приветствую на форуме!
Что-то я, видимо, упустил при прочтении мигрэйшн гайд
Ну это гадание на кофейной гуще. Самое главное отличие - это режим FIBERLESS и возможность curDoc() == NULL. Ну и если подвисает при завершении AutoCAD, то смотри что происходит в On_kUnloadAppMsg. Впрочем возможно к этому моменту уже всё испорчено...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

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

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

  • ADN OPEN
  • **
  • Сообщений: 66
  • Карма: 3
Александр, спасибо за ответ!
Попробую сегодня поправить код. Я использую в программе контекст текущего документа и учитываю момент переключения между документами. Проверки при загрузке на curDoc() == NULL у меня нет, так как раньше это всегда прокатывало. Поправлю код. По итогам отпишусь. Может, если будет правильный вход, то будет и правильный выход  :).

Отмечено как Решение Baton 16-03-2015, 01:37:34

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

  • ADN OPEN
  • **
  • Сообщений: 66
  • Карма: 3
Во всех моих приложениях нашел обращения к текущему документу и вставил проверки указателя документа на NULL. В основном это было при инициализации моих программ, в методах класса AcApDocManagerReactor - documentToBeActivated, documentCreated, documentToBeDestroyed, а так же в методах моих классов, которые контактировали с методами класса AcApDocManagerReactor. После этого все проблемы пропали.
Спасибо за помощь!!! Каждая версия Автокада приносит свои сюрпризы.

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

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

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

  • ADN OPEN
  • **
  • Сообщений: 66
  • Карма: 3
Простите за тупость. На каком посте нажимать на "решение". На моем последнем? Я сам не смог догадаться.

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

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