- Печать
Страницы: [1] Вниз
Тема: Ошибка печати при экспорте в Pdf (Прочитано 4939 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.
Фатальная ошибка при печать в PDF
что с этим делать, подскажите пожалуйста.
Записан
1. Объясни пожалуйста имеет ли это какое-то отношение к разделу программирования AutoCAD .NET API?
2. Это сообщение возникает как результат работы твоей программы печати в AutoCAD или это стандартная печать AutoCAD?
3. Какая версия AutoCAD? Установлены ли обновления AutoCAD?
4. Происходит ли эта ошибка только с одним чертежом или всегда?
Записан
Сначала необходимо убедиться, что в чертеже нет ошибок.
Записан
1. Объясни пожалуйста имеет ли это какое-то отношение к разделу программирования AutoCAD .NET API?
2. Это сообщение возникает как результат работы твоей программы печати в AutoCAD или это стандартная печать AutoCAD?
3. Какая версия AutoCAD? Установлены ли обновления AutoCAD?
4. Происходит ли эта ошибка только с одним чертежом или всегда?
1. Практически, никакого.
2. В обоих случаях.
3. Не знаю как у автора вопроса, но у меня AutoCAD Civil 3D 2016 со всеми обновлениями.
4. В одном чертеже и только если подгружена определенная внешняя ссылка.
Тоже столкнулся на прошлой неделе с такой ошибкой. Нашел «артикль» на эту тему: https://knowledge.autodesk.com/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/AutoCAD-Error-abort-Error-handler-re-entered-Exiting-now.html. Советы «артикля» не помогли. В общем, я так и не нашел решения этого вопроса.
Записан
Сейчас узнал у коллег — они нашли вариант решения этой проблемы. Оказывается, при печати из версии AutoCAD Civil 3D 2014 этой проблемы нет. Проверил — действительно, 2014 печатает без проблем.
Записан
Отмечено как Решение Александр Ривилис 21-03-2017, 12:50:28
Оказывается, при печати из версии AutoCAD Civil 3D 2014 этой проблемы нет. Проверил — действительно, 2014 печатает без проблем.
Да. Было такое. Я даже отправлял в Autodesk сообщение об этом. В 2017 это исправлено, а в 2016 вроде бы можно исправить эту ошибку если изменить в стилях печати шрифты на shx или на arial.ttf
Записан
а в 2016 вроде бы можно исправить эту ошибку если изменить в стилях печати шрифты на shx или на arial.ttf
Да, действительно! Заменил в стилях текста все шрифты на simplex.shx в проблемной внешней ссылке, и напечаталось без проблем! Спасибо!
Записан
Перенёс тему и отметил как Решение, так как автор вопроса не появляется. Если ему не поможет — Решение сниму.
Записан
Ну и заодно проверил как ведут себя разные версии. Проблема действительно только в 2016 версии. 2014, 2015 и 2017 печатают без ошибок.
Перенёс тему и отметил как Решение, так как автор вопроса не появляется. Если ему не поможет — Решение сниму.
Думаю, что ему тоже поможет.
Записан
- Печать
Страницы: [1] Вверх
Форумы CADUser → Программирование → ObjectARX → Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Страницы 1 2 3 4 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
RSS
Сообщения с 1 по 25 из 78
#1 14 ноября 2005г. 21:35:43
- BS
- Восстановленный участник
- На форуме с 1 февраля 2005г.
- Сообщений: 50
- Спасибо: 0
Тема: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Уважаемые коллеги!
В AutoCAD загружены *.dbx и *.arx приложения.
Все работает нормально, но иногда вдруг выскакивает
сообщение:
«ENTERNAL ERROR: !U:globalscrObjectDbxDBIMPscr
dbobji.cpp@5619:eNotOpenForWrite»
или:
«Error handler re-entered. Exiting now.»
и AutoCAD с грохотом падает.
Перепроверил все что возможно.
Что это все значит?
#2 Ответ от Сергей 14 ноября 2005г. 22:09:51
- Сергей
- Восстановленный участник
- На форуме с 27 октября 2005г.
- Сообщений: 44
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Если это происходит после первого успешного использования какой либо команды, то скорее всего в ней происходит открытие AcDb… для чтения или записи, но после не предусмотрено закрытие ->close(). Повторное открытие базы, на мой взгляд, может породить подобные ошибки.
#3 Ответ от Александр Ривилис 14 ноября 2005г. 22:27:45
- Александр Ривилис
- Активный участник
- Откуда: Украина / Киев
- На форуме с 15 апреля 2005г.
- Сообщений: 8,659
- Спасибо: 157
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
А мне кажется что дело в том что или в одном из arx-файлов (а может и dbx-файлов), которые используют другие custom entity примитив открывается на чтение, но с ним производится операция, которая может выполняться только в режиме записи.
Возможен и даже более вероятен другой вариант — в каком-то из методов custom entity вместо assertReadEnabled() стоит assertWriteEnabled(). Собственно говоря именно эта функция выдает такое сообщение и «роняет» AutoCAD, если объект не открыт для записи.
#4 Ответ от archimag 14 ноября 2005г. 22:35:11
- archimag
- Восстановленный участник
- На форуме с 24 ноября 2004г.
- Сообщений: 156
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Думаю, что не достаточно тщательно ведётся контроль ошибок. Какой-то вызов прошёл неудачно, что не было вовремя обнаружено. По крайней мере, у меня подобные ошибки часто наблюдались до тех пор, пока я всерьёз не обеспокоился проверкой ошибок. Однозначно, после каждого вызова функции из Arx должен проверяться код ошибки, иначе приложение всегда будет работать нестабильно.
#5 Ответ от BS 15 ноября 2005г. 10:59:44
- BS
- Восстановленный участник
- На форуме с 1 февраля 2005г.
- Сообщений: 50
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Спасибо всем за советы.
Я стараюсь следить за всеми ->close(),
assertReadEnabled(), assertWriteEnabled()и т.д.
Но все может быть, поэтому еще раз тщательно перепроверил: все чисто. Забыл добавить что после «ENTERNAL ERROR: !U:globalscrObjectDbxDBIMPscrdbobji.cpp@5619:eNotOpenForWrite»
появляется сообщение:
Runtime error!
Program:……Acad.exe
R6025
-pure virtual function call
(??????!!!!) что за бред
Тяжело смотреть на это. Почему Autodesk не выпустил хотя бы перечень сообщений с их интерпретацией, я уже не говорю об специальном отладчике?
Возможен и даже более вероятен другой вариант — в каком-то из методов custom entity вместо assertReadEnabled() стоит assertWriteEnabled(). Собственно говоря именно эта функция выдает такое сообщение и «роняет» AutoCAD, если объект не открыт для записи.
Сущая правда. В документации так и написано.
Есть правда один момент. Если у меня есть в
custom entity функция-обработчик, где из одних данных получаю другие, то я не вызовал assertХХХ, как бесмысленную в данном случае. Кроме того, посмотрел некоторые примеры. С другой стороны, как быть в таком случае?
Спасибо
#6 Ответ от KonstantinM 15 ноября 2005г. 12:49:47
- KonstantinM
- Восстановленный участник
- На форуме с 5 марта 2002г.
- Сообщений: 434
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Почему Autodesk не выпустил хотя бы перечень сообщений с их интерпретацией, я уже не говорю об специальном отладчике?
-pure virtual function call
помойму тут все понятно. Если вылетает такое сообщение это значит что зовется из виртуальной таблицы метод, тело которого отсутствует.
Теперь по порядку чтоб стало ясно.
У тебя есть твои объекты? Т.е. custom objects?
Наверняка есть… раз летит такое сообщение.
Замени все assertReadEnabled(), assertWriteEnabled(), на assertReadEnabledMy() и assertWriteEnabledMy — поставь там try catch вокруг вызова соотвествующих assert…Enabled(). Теперь пользуй дебаг и call stack.
И еще, юзаешь ли ты чисто виртуальные метода? интерфейсы?
Короче баг стопудово твой.
вот.
#7 Ответ от BS 15 ноября 2005г. 16:16:45
- BS
- Восстановленный участник
- На форуме с 1 февраля 2005г.
- Сообщений: 50
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> KonstantinM
Спасибо за идею. Сейчас попробую.
И еще, юзаешь ли ты чисто виртуальные метода?
НЕТ
Что имеется ввиду под интерфейсом? Есть интерфейсный arx-модуль. В нем есть диалоговый
интерфейс.
Смущает то что если вставить один объект подряд
2-3 раза, то следующий вылетает. Если их вставлять
по одному все работает нормально.
Ощущение что где-то что-то не закрыто.
#8 Ответ от Сергей 15 ноября 2005г. 18:56:06
- Сергей
- Восстановленный участник
- На форуме с 27 октября 2005г.
- Сообщений: 44
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Думаю, что так оно и есть … у меня было подобное поведение Автокада. Забывал вызывать close() для AcDbDictionary* и как только исправил — всё стало нормально. А, вот ёщё, после получал итератор (AcDbDictionaryIterator*) и забывал вызывать для него delete pIter; Видимо потому, что newIterator() никак не вызывал у меня ассоциацию с оператором new после вызовакоторого надо использовать delete. Ну а аналогичного ->close() для pIter не нашёл и успокоился … а зря.
#9 Ответ от BS 15 ноября 2005г. 20:18:34
- BS
- Восстановленный участник
- На форуме с 1 февраля 2005г.
- Сообщений: 50
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Сергей пишет:
Думаю, что так оно и есть … у меня было подобное поведение Автокада
Я уже тоже могу так заявить. Сидя тупо уставившись на комп, прокручивал подряд все функции. И вдруг смотрю что какой-то pLyrTable открывается для чтения, и что-зто не виден ->close()! Глаза квадратными стали. Оказалось, как всегда, все просто. Давно написал функцию setLayer. Недавно решил ее немного подремонтировать и применить в этой проге (в интерфейсном arx приложении). Ну вот и результат ремонта.
Но смущает другое. Часть сообщений теперь понятна. Но причем здесь вызов чистой виртуальной функции? Да и первое сообщение не очень понятно. Эта злополучная функция находится ведь в интерфейсном arx приложении!
Всем огромная благодарность!
#10 Ответ от Roman 16 ноября 2005г. 10:25:16
- Roman
- Восстановленный участник
- На форуме с 17 декабря 2002г.
- Сообщений: 123
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
BS пишет:
Я стараюсь следить за всеми ->close(),
Лучше постарайся переложить этот труд на компилятор и используй интелектуальные указатели smartPointers<>
Окупаемость усилий фантастическая — о подобных багах думать перестанеш, если сделаеш по уму конечно
#11 Ответ от BS 16 ноября 2005г. 10:46:41
- BS
- Восстановленный участник
- На форуме с 1 февраля 2005г.
- Сообщений: 50
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> Roman
Конечно, всегда в такой ситуации думаешь почему
компилятор за этим не следит, с другой стороны
он же не знает о существовании ObjectARX.
smartPointers<> я однажды применил (для NULL)
а для такого применения что-то не сообразил.
Где-то есть примеры на эту тему?
Спасибо
#12 Ответ от KonstantinM 16 ноября 2005г. 10:48:47
- KonstantinM
- Восстановленный участник
- На форуме с 5 марта 2002г.
- Сообщений: 434
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Сообщение о выове чисто виртуальной функции может лететь по трем случаям (как минимум).
1) Есть две завязанных dll — одну пересобрал, одну нет — получается что одна dll может дергать какое-нибудь гавно из другой.
2) Баг С++ компилятора.
Допустим есть интерфейс:
interface ISample
{
void testFunc(MyType) = 0;
}
при этом в From1dll.h
#include «ISample.h»
#include «MyType.h»
class SampleSingleton : public ISample
{
void testFunc(MyType myType)
{
…
}
}
в From2dll.cpp
№include «ISample.h»
#include «MyType.h»
ISample* pSample = getSampleSingleton();
pSample->testFunc(myType);
Ну дак вот получается что компайлер и линкер все это прохавывает. Но есть в С++ такая особенность что если тип не указан, то переменная считается типом int. Вот и получается что ISample — компиляется с функцией которая принимает переменную int MyType — после этого при создании класса появляется метод уже с переменной MyType myType — все это компиляеца и компайлер не выдает баг что пытаетесь проинстанциировать абстрактный объект. При этом в виртуальной таблице есть абстрактный метод — который никуда ни указывает (чисто абстрактный). При попытке вызвать этот метод — появляется вышеследующее сообщение
-pure virtual function call
3) Третья причина — самая распространенная — это грязная кастовка указателей — с последующим дерганием методов и созерцанием оного сообщения.
4) По третьей причине может происходить такая ситуация. Указатель на что-то указывает в «жопу» (сорри, т.е. не инициализирован). Вы пытаетесь сделать что-то чтоб этот указатель присвоить (типа открыть объект и установить объект). Но !вдруг! объект не открывается — вы делаете return из метода и указатель продолжает указывать в «жопу». Далее этот указатель кастуется к чему то и у него дергаются метода… получается опять же знакомая картина.
Причем баг по причине 4) очень свойственен нутрям автокада. Т.е. стоит только что-то забыть закрыть — акад может вылететь N-различными способами.
Один из самых показательных примеров. Выделяем в акаде >2 объектов. Программно через erase() один объект убиваем. Далее пытаемся в акаде сдвинуть оставшиеся объекты… акад вылетает сразу и молча — даже не успевает оставить предсмерный assert/exception или табличку с предложением отправить информацию об ошибке — на деревню дедушке, не делает аварийные логи, не пытается аварийно записать файлики — короче смерть мгновенна и фатальна.
#13 Ответ от Сергей 16 ноября 2005г. 10:53:32
- Сергей
- Восстановленный участник
- На форуме с 27 октября 2005г.
- Сообщений: 44
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Если я не ошибаюсь — smartPointers<> из раздела COM программирования … И кто б чего ни говорил, но программировать COM приложения на С++ не очень завидное занятие … следить и проверять придётся не меньше, плюс наложаться баги от Autodesk и Microsoft (я имею ввиде не только падения приложения или клиента, но и торможение в непонятных случаях). Добавлю также, что COM слассы, предоставляемые Autodesk — это те же wrappers, а внутри всё то же, с чем имеем дело в ObjectARX классах. Поэтому если уж использовать wrappers, то .NET поудобнее будет, да и посвежее. А лучше ни то и ни другое не использовать, когда речь не идёт о пользовательском интерфейсе.
#14 Ответ от archimag 16 ноября 2005г. 11:26:43
- archimag
- Восстановленный участник
- На форуме с 24 ноября 2004г.
- Сообщений: 156
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> Сергей
>Если я не ошибаюсь — smartPointers<> из раздела COM программирования
Вы ошибаетесь. Интелектуальные указатели одна из стандартных и широко используемых идиом С++. В том числе, они широко используют при программировании СОМ. Лично я не представляю, как можно программировать arx-приложения и не использовать интелектуальные указатели: отслеживания правильности вызововов close будет занимать все основные силы. Широкое использование интелектуальных указателей не требует каких-либо дополнительных усилий, но одним махом снимает проблему close.
#15 Ответ от KonstantinM 16 ноября 2005г. 15:05:47
- KonstantinM
- Восстановленный участник
- На форуме с 5 марта 2002г.
- Сообщений: 434
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> archimag
>Широкое использование интелектуальных
>указателей не требует каких-либо
>дополнительных усилий, но одним махом снимает проблему close.
Согласен, проблему close() снимает одним махом, но мир многообразен и появляется другая проблема — это области видимости и умения пользовать интел. указ.
Волей судьбы приходится еще работать и преподователем по С++ и С# — ну дак вот стал замечать, что люди которые пришли к C# минуя С++ — это те же самые Visual Basic Developers, которые могут что-то быстро слабать на коленках, но при этом ,во-первых, слабо представляют что же там внутрях реально происходит (доходит до того что люди могут писать серьезные программки, но не знать что такое куча и динамическая память), во-вторых, как-только натыкаются на баг типа — pure virtual function call, который летит из недр «НЕ МОЕГО КОДА», то честно думают что «БАГ ЛЕТЯЩИЙ НЕ ИЗ МОЕГО КОДА — ЭТО НЕ МОЙ БАГ, А БАГ МАЙКРОСОФТА!!!» и выглядят как безпомощные котята и не знают что делать…
Умение искать баги — это отдельный навык, который приобретается при использование «неусложненных» конструкций. Посему человек BS идет в правильном направлении Щас попарится с указателями и освобождением ресурса в виде close(), а потом уже дойдет и до и. указателей. Будет знать откуда у них ноги растут и зачем их едят
#16 Ответ от Сергей 16 ноября 2005г. 16:11:01
- Сергей
- Восстановленный участник
- На форуме с 27 октября 2005г.
- Сообщений: 44
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> archimag
«Лично я не представляю, как можно программировать arx-приложения и не использовать интелектуальные указатели»
Легко и непринуждённо, вопрос дисциплины: открыл закрыл, зато понятно когда AcDb…* , будет прибит. Смарт указатели это конечно удобно, но за удобство приходиться платить, как всегда. Кстати, а как насчёт отладки? Она столь же проста и удобна как «умные» указатели?
#17 Ответ от archimag 16 ноября 2005г. 16:56:34
- archimag
- Восстановленный участник
- На форуме с 24 ноября 2004г.
- Сообщений: 156
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> Сергей
> зато понятно когда AcDb…* , будет прибит
При использовании интелектуальных указателей тоже ВСЕГДА понятно, когда объект будет «прибит»: при выходе за пределы области видимости и это не такой сложный вопрос, как об этом говорит KonstantinM — это основа основ С++. Писать с использованием прямого вызова close относительно легко только небольшие функции, а в сложных, с возоможностью множественного выхода из функции (например, при возбуждении исключения), это просто кошмар.
>но за удобство приходиться платить
ЧЕМ? Они не занимают больше места, чем простые указатели. Даже стоимость вызова функции будет для большинства реализаций такой же, как для встроенных. Т.е. по эффективности они не уступают обычным, и при всём при этом сбывается «голубая мечта» — close вызывается компилятором! Это значительно упрощает алгоритмы и кардинально снижает количество ошибок.
>а как насчёт отладки
Кстати, интелектуальные указатели могут значительно облегчить отладку! В отладочной версии можно в реалзацию operator->() вставить проверку предусловия с выводом соответствующих диагностических сообщений.
#18 Ответ от Roman 16 ноября 2005г. 17:34:20
- Roman
- Восстановленный участник
- На форуме с 17 декабря 2002г.
- Сообщений: 123
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> archimag
Абсолютно согласен
Чтобы долго не спорить мини-пример:
template<typename T> class MySmartPrt { public: MySmartPrt() : object_(NULL) {} ~MySmartPrt() { close(); } Acad::ErrorStatus open(AcDbObjectId id, AcDb::OpenMode mode) { close(); object_=0; return acdbOpenObject(object_, id, mode); } void close() { if(object_){ object_->close(); object_=0; } } T* operator->() { return object_; } const T* operator->()const { return object_; } private: T* object_; }; //Теперь используем - Вариант1 void someFunc1(AcDbObjectId id) { MySmartPrt<AcDbLine> line; if(line.open(id, AcDb::kForWrite)!=Acad::eOk) return; line->setStartPoint(...); line->setColorIndex(...); line.close();//закрываем принудительно } //Теперь используем - Вариант2 void someFunc2(AcDbObjectId id) { MySmartPrt<AcDbLine> line; if(line.open(id, AcDb::kForWrite)!=Acad::eOk) return; /*some new logic */ return;[b]//вот тут вся красота!!! Если использовать стандартный способ линия останется открытой //В нашем же случае всю работу сделает деструктор MySmartPrt[/b] line->setStartPoint(...); line->setColorIndex(...); line.close();[b]//закрываем принудительно //Наличие указателя не мешает мне принудительно закрывать объект[/b] }
#19 Ответ от BS 16 ноября 2005г. 18:42:08
- BS
- Восстановленный участник
- На форуме с 1 февраля 2005г.
- Сообщений: 50
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> Roman
Впечатляет. Хочу только добавить, что пока Microsoft и Autodesk не создадут специальный компилятор для ObjectARX эти и другие ошибки будут встречаться. Особенно у длинных и накрученных функций (+ комментарии). Все таки, мне кажется, это искусственный метод, за этим должен следить все таки компилятор.
Кому интересно, тема интелектуальных указателей хорошо описана в переводном издании книги Джефф Элджер, С++, Библиотека программиста. Хотя примеров там маловато.
#20 Ответ от DiKey 16 ноября 2005г. 18:55:21
- DiKey
- Восстановленный участник
- На форуме с 19 марта 2004г.
- Сообщений: 32
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Кстати в ObjectArx есть готовая реализация «умного» указателя. Это шаблон, называется AcDbObjectPointer и лежит в
dbobjptr.h.
#21 Ответ от Сергей 16 ноября 2005г. 18:55:35
- Сергей
- Восстановленный участник
- На форуме с 27 октября 2005г.
- Сообщений: 44
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
При работе с базой данных Autodesk рекомендует как можно скорее закрывать базу (не думаю, что они оберегают новичков от забывчивости). В этом случае, всё продемонстрированоо ранее изящество сводится на нет, т.к. принудительно вызвать close() интеллектуального указателя ничто не мешает, но только вот зачем ещё один «фантик» и в без того нешибко стройной конструкции как ObjectArx(). Эффективным применением обобщённого программирования в системе с …тилетним наследием не разбалуешься.
#22 Ответ от DiKey 16 ноября 2005г. 19:02:42
- DiKey
- Восстановленный участник
- На форуме с 19 марта 2004г.
- Сообщений: 32
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Я использовал класс-наследник AcDbObjectPointer, который кидается исключениями в случае возникновения ошибок типа некорректного открытия объекта. При работе с таким классом, смарт-указатель всегда должен находиться внутри try-catch секции, которая очень хорошо ограничивает область видимости указателя. Так что (за редким исключением) объект остается открытым ровно столько, сколько это необходимо.
#23 Ответ от Сергей 16 ноября 2005г. 20:10:38
- Сергей
- Восстановленный участник
- На форуме с 27 октября 2005г.
- Сообщений: 44
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Г-н Джон Роббинс (консультант по отладке) считает catch весьма полезным для своего банковского счёта, но очень небезопасным и рекомендует воздерживаться от использования.
#24 Ответ от archimag 16 ноября 2005г. 22:35:41
- archimag
- Восстановленный участник
- На форуме с 24 ноября 2004г.
- Сообщений: 156
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> Сергей
>При работе с базой данных Autodesk
>рекомендует как можно скорее закрывать базу
Да кто-же спорит. Ну поставь, просто, в нужном месте пару фигурных скобок, ограничивающих область видимости, и всё! Это же элементарно…
>Эффективным применением обобщённого >программирования в системе с …тилетним >наследием не разбалуешься.
Вы не любите кошек? Вы просто не умеете их готовить!!! Ещё как разболуешься! Я занимаюсь этим последний год и очень доволен результатом. Обобщённое программирование рулит даже применительно к такому диназавру как ObjectArx (кстати, вы не замечали, что Autodesk тоже его использует?).
>Г-н Джон Роббинс…
Да бог с ним, с этим господином (никогда о нём не слышал), весь мир уже понял, что исключения весьма эффективный инструмент, значительно облегчающий такое нелёгкое дело, как обработка ошибок и значительно повышающий надёжность программ (естественно, при грамотном использовании). Я уже как то говорил, что комбинация интелектуальных указателей и исключений, применительно к ObjectArx, способна по крайней мере вдвое сократить размер код и многократно повысить его надёжность. Проверено на собственном опыте.
#25 Ответ от KonstantinM 17 ноября 2005г. 08:15:39
- KonstantinM
- Восстановленный участник
- На форуме с 5 марта 2002г.
- Сообщений: 434
- Спасибо: 0
Re: Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
> archimag
Безспорный плюс иу — в том что при вылетании исключения — таки будет закрыт объект.
Но могу поспорить что в надежности программы иу играют далеко не главную роль. Есть набор элементарных правил при написании кода, соблюдая которе ваша программа без STL, шаблонов, иу и прочего — станет гораздо надежней чем та же программа написанная со всеми этими прибамбасами, но без использования этих правил.
В частности есть набор правил конечного автомата. 1) Все возможные ветки конечного автомата, которые вы не обрабатываете — должны быть перекрыты assert-ом. 2) При использовании критического ресурса конечный автомат должен иметь обязательно одну точку входа и выхода и исполнение кода должно обязательно пройти через эти точки.
В соответсвтии с пунктом два — если внутри функции с критическим ресурсом есть >1 return, то это так же небезопасно как есть грязными руками — в большенстве случаев прокатит, но может и не повезти.
ИУ — это совсем не плохо, но вот плох лозунг, что «используя ИУ — вы можете забыть о …» Нельзя забывать… Лучше написать такой ИУ, который будет проверять в деструкторе, что Ваш объект все еще открыт, а ссылок вроде на него уже как и нет и кидать assert… разбирайтесь мол где у Вас что-то не закрылось.
Методы типа:
f()
{
SmartPtr<CriticalResource*> pSrc(resId);
…
return;
if (…)
return;
for(…)
{
if ( … )
return;
}
return;
}
надо гнобить на корню, ИУ — в этом случае это гнилая отмазка!!!
Страницы 1 2 3 4 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Сообщения AutoCAD: «ENTERNAL ERROR: !U:… dbobji.cpp@5619:eNotOpenForWrite» и «Error handler re-entered. Exiting now.»
Команда bcdedit /set IncreaseUserVa 3072
откройте «Свойство системы» и перейдите на вкладку «Дополнительно».
- откройте раздел «Загрузка операционной системы» и далее «Параметры»;
- в области «Загрузка операционной системы» выберите «Изменить»;
- в открывшемся «boot.ini» (перед изменением сохраните резервную копию) скопируйте строку «multi(0)disk(0)rdisk(0)partition(2)WINDOWS=»Microsoft Windows XP Professional» /fastdetect» и поместите её под исходную строку.
- в скопированной строке после «Professional» допишите 3GB и продублируйте ещё раз после кавычек, закрыв с двух сторон слэшем «/»;
- сохраните документ в том же расширении, перезагрузите компьютер и при запуске выберите «3GB».
Если недостаточно памяти и из 3 Гб, то следует перейти на 64-битную операционную систему.
3. Отключена служба FNPLicensingService
Данная служба, если пояснять простыми словами, отвечает за правомерность запуска исполняемых файлов, проверяя их на лицензирование, и обычно входит в состав продукции «Adobe».
Если служба отключена, попробуйте снова запустить её, открыв раздел «Службы» (команда «services.msc»). В свойствах службы возможно установить тип запуска в автоматическом режиме.
Свойства службы FNPLicensingService
4. Некорректно работает служба проверки цифровой подписи
Обычно подобная ситуация возникает при проведении инсталляции, запрашивая подтверждение цифровой подписи, дабы избежать подобного, следует отключить данный функционал.
Нажмите «WIN+R» или меню «Пуск» – «Выполнить» и введите команду «acsignopt».
Запуск команды acsignopt
Откроется окно «Параметры проверки цифровой подписи», где необходимо снять флажок с пункта «Проверять цифровые подписи и отображать специальные значки».
Рекомендуется после отключения, полностью удалить «Автокад» и заново провести установку.
Все эти четыре варианта применимы и к «unhandled e0434352h exception».
Дополнительные причины и варианты исправления фатальных ошибок
1. Аварийное завершение autocad при печати документа
Для исправления, удалите папки «А:UsersUZVERAppDataRoamingAutodesk» и «А:UsersUZVERAppDataLocalAutodesk» с последующей переустановкой «Автокад».
2. Изменение значения ключей в реестре
Откройте редактор реестра «Выполнить» + команда «regedit».
Запуск редактор реестра regedit.exe
Пройдите «HKEY_CURRENT_USERSoftwareAutodeskAutoCADR0.0ACAD-8000:409WebServicesCommunicationCenter», где «R0.0» – это версия вашего программного обеспечения.
В двух параметрах «LastUpdateTimeHiWord» и «LastUpdateTimeLoWord» измените значение на 8 нулей.
Изменение значения ключей Автокада в реестре
3. Не сертифицирована видеокарта
Маловероятная, но возможная причина.
Проверьте наличие актуальности драйверов видеокарты и обновитесь до последней версии.
Проверьте, сертифицирована ли ваша видеокарта для работы с продукцией компании «Autodesk».
Проверить это можно на официальном сайте в разделе «Сервисы», где можно также скачать проверенные версии драйверов для определённых фирм (AMD или Nvidia) и моделей видеокарт.
4. Сбой драйвера дисплея
Вызван данный сбой плотностью или установленным размером штриховки, что приводит к некорректной работе драйвера.
Для начала можно воспользоваться методом из способа выше и обновить драйверы программного обеспечения.
Далее, следует изменить значение переменной «HPMAXLINES», которая и регулирует максимальное количество линий штриховки. По умолчанию установлено значение в «1 000 000», попробуйте протестировать работу программы, убирая, к примеру, по одному «0».
Изменение значения переменной «HPMAXLINES»
5. Чрезмерное значение переменной НАСТРВИД
Системная переменная «НАСТРВИД» регулирует внешний вид дуг, окружностей, сплайнов и т. д. И если установлен высокий процент зумирования, это может в итоге привести к торможению процесса регенерации чертежа и к аварийному завершению работы.
Итак, данные перечисленные одиннадцать вариантов не являются исчерпывающим списком, некоторым пользователям помогают, на первый взгляд, абсолютно банальные решения, к примеру:
- переустановка ПО и запуск с учётной записи администратора;
- удаление обновлений «KB2859537» и «КB2872339»;
- списание проблем на недостаточную мощность компьютера (на объём видеокарты, оперативку) с проведением апгрейда;
- запуск в режиме совместимости и т. п.
В связи с этим при столкновении с сообщением в Autocad «фатальная ошибка» не стоит паниковать, решения есть, и как можно удостовериться из всего вышеописанного, их множество.
Источник
AutoCAD
By:
Issue:
When launching AutoCAD (LT), it runs through loading but immediately after opening will crash after displaying the error:
AutoCAD Error Aborting:
FATAL ERROR: Unhandled e0434352h Exception at fd1ba06dh
Note: The last sequence of letters and number will be different for every machine.
The following message may follow:
AutoCAD Error-abort
Error Handler Re-Entered. Exiting now.
Also, the following may be observed:
- The program is missing Tool Palettes and Ribbons.
- The drawing may briefly open and then crash.
Causes:
- Too long file path
- Corruption in the AutoCAD user profile.
- Corrupted installation of AutoCAD
- Corruption of AutoCAD SPDS add-on module. (designed to support drawings in compliance with the requirements of the Russian system of standards for construction design documentation)
- Operating System: the system itself (like corrupt installation of OS or some components like .NET Framework) or user profile.
- Windows text editor enabled.
- EVENT VIEWER shows Microsoft-Windows-PerfProc (PerfProc) Event ID 2002.
- Insufficient Windows privileges.
Solution:
File path length:
- Place the file in a folder to make the path shorter.
- Create a mapped drive that contains a path of the path. So the path to open the file will be shorter.
Product Updates
- Install the latest product updates — either using Autodesk Desktop App or from Autodesk Account
Reset AutoCAD user profile:
Clean uninstall and reinstall of the software:
Corruption of AutoCAD SPDS:
Operating System:
- Fix a corrupted User Profile on Windows.
- How to remove and reinstall the Microsoft .NET Framework.
- How to remove and reinstall Microsoft Visual C++ Redistributable packages.
- If the preceding suggestions do not resolve the issue and the issue is environment-specific, then it might be necessary to reimage the workstation or reinstall the operating system.
- EVENT VIEWER shows Microsoft-Windows-PerfProc (PerfProc) Event ID 2002
- This error might be caused by one of the following conditions:
- The list of counters is corrupt.
- The Remote Registry service is not running on a remote system.
- The File and Printer Sharing firewall exception is not enabled on a remote system running Windows Vista.
- The application is running as a user with insufficient privileges.
- Run SFC/scannow to correct possible corruptions. Attempt to open Autodesk product. If this fails to proceed to the next step.
- To check if the Remote Registry service is running:
- On the destination system, click Start.
- In the Start Search text box, type compmgmt.msc, and then press ENTER. Microsoft Management Console (MMC) will start.
- In the navigation tree, expand Services and Applications and click Services.
- In the Services list, scroll down and click Remote Registry.
- Check to see if the status of the Remote Registry service is Started. If it is not, follow the steps in the section titled «Enable the Remote Registry service» to resolve the error.
- This error might be caused by one of the following conditions:
Autodesk Folder Permissions:
Check Graphic Driver:
Some security software may make it necessary to disable InfoCenter:
Press ‘WINDOWS-R’ on the keyboard to bring up the Run window, enter REGEDIT and click ‘OK’.
Navigate to and select the following folder:
This path is unique for each version of AutoCAD. You can see what ‘ACAD-xxxx’ refers to by selecting the path and then looking at the keys on the right pane of the Registry Editor. One of the keys will show the install path to the associated version of AutoCAD. The ’40x’ number signifies the language version of AutoCAD.
On the right pane of the window, double-click ‘InfoCenterOn’.
Enter a value of (zero) and click ‘OK’.
Note: If multiple versions of AutoCAD are installed, the InfoCenter needs to be disabled for each one.
Источник
AutoCAD
Автор:
Проблема
При запуске AutoCAD (LT) программа выполняет загрузку, но сразу после открытия происходит сбой после отображения ошибки.
Ошибка AutoCAD:
НЕУСТРАНИМАЯ ОШИБКА: необрабатываемое исключение e0434352h по адресу fd1ba06dh
Примечание. Последняя последовательность букв и номеров будет отличаться для каждого станка.
Далее может появиться следующее сообщение:
Аварийное завершение AutoCAD
Повторный Ввод Обработчика Ошибок. Выполняется выход.
Кроме того, можно наблюдать следующие ошибки.
- В программе отсутствуют инструментальные палитры и ленты.
- Чертеж может быть открыт на короткое время, а затем может аварийно завершить работу.
Причины
- Слишком длинный путь к файлу
- Повреждение профиля пользователя AutoCAD.
- Поврежденная установка AutoCAD
- Повреждение дополнительного модуля AutoCAD SPDS (разработанного для поддержки чертежей в соответствии с требованиями российской системы стандартов для строительной документации)
- Операционная система: сама система (например, поврежденная установка ОС или некоторых компонентов, например .NET Framework) или профиль пользователя.
- Текстовый редактор Windows включен.
- В средстве просмотра событий отображается идентификатор события 2002 (Microsoft-Windows-PerfProc (PerfProc)).
- Недостаточно прав Windows.
Решение
Длина пути к файлу:
- Поместите файл в папку, чтобы сократить путь.
- Создайте подключенный диск, содержащий путь. Таким образом, путь к файлу будет короче.
Обновления продуктов
- Установите последние обновления программы с помощью приложения Autodesk для ПК или на портале Autodesk Account.
Сброс профиля пользователя AutoCAD
Полное удаление и повторная установка программного обеспечения
Повреждение AutoCAD SPDS
Операционная система:
- Исправьте поврежденный профиль пользователя в Windows.
- Удаление и повторная установка Microsoft .NET Framework.
- Удаление и повторная установка распространяемых пакетов Microsoft Visual C++.
- Если перечисленные выше рекомендации не помогли устранить проблему, а она связана с конкретной средой, может потребоваться повторно создать образ рабочей станции или переустановить операционную систему.
- В средстве просмотра событий отображается идентификатор события 2002 (Microsoft-Windows-PerfProc (PerfProc)
- Эта ошибка может быть вызвана одним из следующих условий:
- Список счетчиков поврежден.
- Служба удаленного реестра не запущена на удаленной системе.
- Исключение брандмауэра общего доступа к файлам и принтерам не включено на удаленной системе под управлением Windows Vista.
- Приложение запущено от имени пользователя с недостаточными правами.
- Запустите SFC/scannow для исправления возможных повреждений. Попытка открыть программу Autodesk. Если это не поможет, перейдите к следующему шагу.
- Чтобы проверить, запущена ли служба удаленного реестра, выполните следующие действия.
- В системе назначения нажмите кнопку «Пуск».
- В текстовом поле «Начало поиска» введите compmgmt.msc и нажмите клавишу ENTER. Запустится консоль управления (MMC).
- В дереве навигации разверните узел Службы и приложения и выберите Службы.
- В списке «Службы» прокрутите вниз и выберите Удаленный реестр.
- Проверьте, находится ли служба удаленного реестра в состоянии Запущено. Если это не так, выполните действия, описанные в разделе «Включение службы удаленного реестра», чтобы устранить ошибку.
- Эта ошибка может быть вызвана одним из следующих условий:
Права доступа к папкам Autodesk:
Проверка графического драйвера:
Некоторые программы обеспечения безопасности могут потребовать отключения Инфоцентра:
Нажмите WINDOWS + R на клавиатуре, чтобы открыть окно «Выполнить», введите REGEDIT и нажмите кнопку «ОК».
Перейдите к следующей папке:
Этот путь уникален для каждой версии AutoCAD. Можно проверить, какой программе принадлежит раздел ACAD-xxxx, выбрав этот путь и посмотрев на ключи на правой панели редактора реестра. В одном из ключей будет отображаться путь установки для соответствующей версии AutoCAD. Номер 40x обозначает язык версии AutoCAD.
На правой панели окна дважды щелкните InfoCenterOn.
Введите значение (ноль) и нажмите кнопку «ОК».
Примечание. Если установлено несколько версий AutoCAD, необходимо отключить Инфоцентр для каждой из них.
Источник
- Forum
- Discussions and Support
- AEC
- AutoCAD Architecture
- ACA General
- error handler re-entered. Exiting now
-
2006-05-05, 03:22 PM
#1
Member
error handler re-entered. Exiting now
hello everyone!
the above message appears when I’m working in paperspace and I’m changing the size or/and the position of a viewport (or viewports) . The program then exits directly without asking for save!
I suppose is a mutter of memory (?) but I don’t know what to do…Any help?
Thanks a lot
-
2006-05-05, 11:05 PM
#2
Re: error handler re-entered. Exiting now
Hi
Does this occur in all drawing files or just the odd one-or-two ?
What version of AutoCAD are you using ?
Have a good one, Mike
-
2006-05-06, 07:37 PM
#3
Re: error handler re-entered. Exiting now
My think is that you didn’t install the AutoCAD in good way.
-
2006-05-11, 05:27 PM
#4
Member
Re: error handler re-entered. Exiting now
Hello again! Sorry I didn’t answer before, I was out of town and I didn’t have a computer…
We are using ADT 2005 and the problem is not only happening in a specific dwg and not only in my computer but also at many other computers in the office.
Thanks a lot
-
2006-05-11, 05:43 PM
#5
Re: error handler re-entered. Exiting now
Hi,
Do you have the latest service packs installed?
Also, sometimes Microsoft .Net Framework can cause various problems. What version do you have installed?
-
2006-05-12, 05:16 AM
#6
Re: error handler re-entered. Exiting now
Originally Posted by elsarant
Hello again! Sorry I didn’t answer before, I was out of town and I didn’t have a computer…
We are using ADT 2005 and the problem is not only happening in a specific dwg and not only in my computer but also at many other computers in the office.Hi «elsarant» ( Sorry, I do not know your real name ).
No sorry, necessary or required.
Please note I have *moved* this thread from the AutoCAD General forum to this one..
Thanks, Mike
Forum Manager
-
2006-05-12, 05:33 AM
#7
Re: error handler re-entered. Exiting now
Originally Posted by elsarant
Hello again! Sorry I didn’t answer before, I was out of town and I didn’t have a computer…
We are using ADT 2005 and the problem is not only happening in a specific dwg and not only in my computer but also at many other computers in the office.
Thanks a lotAre you using the project navigator approach and dragging model views from from your view file to a sheet file? Also if you run ADT with «SDI=1» you will get about the same result. ADT dose not like to run in single drawing mode. It needs to always have at least one file open; even if it’s just a blank drawing. If you can give us a little more information it would be very helpful.
Thanks
-
2006-05-12, 10:46 AM
#8
Member
Re: error handler re-entered. Exiting now
Thanks everybody for the quick response!
Tim, I had Microsoft .Net Framework v.1.1 and I removed but the problem happened again.I’m going to install the latest service pack and I will revert to the subject later.
David, I always have 3-4 dws opened. It’s a feature I appreciate very much. And it’s a really nasty trick when they vanish all without saving.
thanks again
Elsa
-
2006-05-12, 12:50 PM
#9
Re: error handler re-entered. Exiting now
Just a Q, are you using some other progs to gather data from while you’re in your VP?
Had the same problem here with gathering data from SAP r4.6 via a webservice. It seems there was a bad string in the VP that shuts down AutoCAD ADT without a warning.
-
2006-05-12, 01:55 PM
#10
Re: error handler re-entered. Exiting now
Originally Posted by Olaf.Banckaert
Just a Q, are you using some other progs to gather data from while you’re in your VP?
Had the same problem here with gathering data from SAP r4.6 via a webservice. It seems there was a bad string in the VP that shuts down AutoCAD ADT without a warning.
You beat me to the question.
Any third party apps that you are running on top?
- Forum
- Discussions and Support
- AEC
- AutoCAD Architecture
- ACA General
- error handler re-entered. Exiting now
Similar Threads
-
Replies: 4
Last Post: 2014-04-23, 02:13 PM
-
Replies: 5
Last Post: 2013-04-06, 05:20 PM
-
Replies: 35
Last Post: 2010-08-02, 11:53 PM
-
Replies: 2
Last Post: 2005-11-15, 07:33 AM
-
Replies: 0
Last Post: 2004-06-05, 03:49 AM

Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
- BB code is On
- Smilies are On
- [IMG] code is On
- [VIDEO] code is On
- HTML code is Off
Forum Rules