|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
18.02.2021, 09:47 | #1 | |
Delphi App для Autocad. "Вызов был отклонен".
Регистрация: 11.09.2008
Сообщений: 386
|
||
Просмотров: 3153
|
|
||||
Регистрация: 18.11.2019
Сообщений: 1,516
|
У меня была проблема, что приложение работавшее в старых версиях автокада (2000) при установке новых версий переставали работать. При установке самых-самых новых версий - опять начинали работать. Может быть, стоит приложение привязывать к той версии автокада, в которой оно точно работает. Т.е. исследовать проблему на разных версиях для начала.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,832
|
Как минимум зависит от метода связывания - позднее или раннее. Туда же - разрядность.
Вообще-то стоит анализировать код, запускать его в режиме отладки (не помню, было ли подобное в дельфях) и смотреть, в каком месте вываливается исключение.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,516
|
Если программа долго и стабильно работала, потом перестала работать - значит проблема в конфигурации внешней среды (автокада). Конфигурация автокада явно поменялась. Сколько автокадов стоит на компьютере? Вы уверены, что программа связывается именно с той версией автокада, которая нужна?
|
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
1. Надо проверять готовность акада к общению.
2. Не сразу завершать работу с ошибкой - а сделать несколько попыток в цикле через N мс, и лишь потом сообщать пользователю - что произошла ошибка. Тогда через COM будет стабильнее работать, а не вылетать рандомно ошибки) |
|||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,516
|
У меня из 32х битной дельфовской программы в 64 битный автокад графика нормально выводилась (позднее связывание).
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,832
|
nickname2019, значит, у тебя другая программа
Могу ошибаться, но то же преобразование ObjectId в указатель на объект отличается в зависимости от разрядности и версии ACAD. P.S. Остаюсь при своем мнении: надо вскрывать исходник и ковыряться там.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 11.09.2008
Сообщений: 386
|
Цитата:
----- добавлено через ~1 мин. ----- Цитата:
----- добавлено через ~5 мин. ----- Сбои Программа дает сбой каждый раз в разных местах кода. Может не считать точку чертежа по запросу программы сразу, может все считать, а результат не выдать, по всякому. Во всех случаях "Вызов был отклонен"... |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
для COM это нормально, у меня тоже вылетало при выводе отчетов в word/excel. Пришлось переписывать модуль вывода с введением циклов попыток вокруг обработчиков исключений - теперь работает стабильно.
Попробуйте вырубить на время антивирусы, фаерволы - т.е. те программы, что производят анализ поведения приложений. Или добавить папку акада в исключение. |
|||
|
||||
Регистрация: 11.09.2008
Сообщений: 386
|
https://yadi.sk/i/olMFDdO0_RN2wA
ну вот короткое видео работы со сбоями. Видно, что в целом все работает. Так же видно, что идут сбои. ----- добавлено через ~2 мин. ----- Вот раньше никогда такого не было, все как часы работало. Вот тоже грешу на сторонние процессы, которые перехватывают Автокад, и соответственно дают сбой приложениям. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
раньше много чего не было) Имхо, для защиты от вредоносного кода в операционные системы и защитные программы будет вводиться все больше проверок (а любая проверка - это подтормаживание процесса выполнения программы) - поэтому рано или поздно все равно придется столкнуться с "капризами" COM. Даже если найдете какой то костыль для обхода проблемы в настоящее время.
|
|||
|
||||
Регистрация: 18.11.2019
Сообщений: 1,516
|
Цитата:
Имхо, пора переезжать на С++ или C#. По крайней мере, диалоги с юзером надо переписать. А если код Dephi переписывать лень - можно на Dephi сделать dll с процедурами и оттуда нужные процедуры грузить. Я первое время так делал. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,038
|
С другой стороны, сделан интерфейс, какие то информационные файлы с вычитанной информацией. Если можно "малой кровью" дописать обертки для обращений к COM-модели акада и дальше использовать наработки для упрощения зарабатывания денег - зачем радикально все переделывать. А переделывать придется все - интерфейс в палитре должен быть размещен, а не окном с флагом "поверх остальных окон" и т.д.
|
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Инсталлятор плагинов для AutoCAD | Нефтепроводчик | Программирование | 6 | 23.02.2016 09:17 |
Свежие книги по AutoCAD. Какая лучше? | Marsikus | Поиск литературы, чертежей, моделей и прочих материалов | 10 | 28.01.2012 16:55 |
Правило формирование записей в реестре об установленных обновлениях для AutoCAD и его вертикальных решений. | hwd | Программирование | 8 | 30.09.2010 15:07 |
управление AutoCAD из Delphi | digar | Программирование | 16 | 24.08.2010 00:00 |
Delphi и Autocad. Отрисовывает точки на новом листее. | Kajas | Программирование | 5 | 28.10.2008 21:15 |