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

ADN Club => ObjectARX => Тема начата: knightrocker от 18-06-2018, 01:39:43

Название: subGetGripPoints бросает Исключения и вызывает падение Автокада
Отправлено: knightrocker от 18-06-2018, 01:39:43
Здравствуйте коллеги.

В процессе изучения Появлась следующая проблема.
Среда: MSVS 2015, Autocad 2017, Platform X64
Попытался создать свой объект наследник от класса AcDbEntity и в процессе реализации столкнулся со следующей проблемой.


ПРОБЛЕМА:
После задания двух точек и появления на чертеже объекта Квадрат.
Если нажать на любой из сторон квадрата левой кнопкой мыши, после отработки функции subGetGripPoints()
происходит выброс двух исключений:

Exception 1:
"acad.exe has triggered a breakpoint."
=> Continue

Exception 2:
"Unhandled exception at 0x00007FF8219A1CD0 (ntdll.dll) in acad.exe: 0xC0000374: Куча была повреждена (parameters: 0x00007FF8219DED40)."
=> Continue

Если запускать программу под отладчиком, то после вылетевшего исключения имеется возможность в его окне нажать на Continue, после чего если
таким образом закрыть оба исключения, то программа успешно продолжает работать, и можно продолжать совершать действия с объектом и Автокадом.

ОДНАКО, в режиме запуска не из под отладчика эти исключения полностью убивают Автокад, приложение падает.

Сам проект, прикрепил к посту.
Название: Re: subGetGripPoints бросает Исключения и вызывает падение Автокада
Отправлено: Александр Ривилис от 18-06-2018, 12:57:35
1. Твой код у меня не скомпилировался и выдал кучу ошибок. После ряда исправлений я понял, что у тебя получается смесь debug/release библиотек, которая судя по всему и приводит к исключению.
2. Я создал новый проект при помощи ObjectARX Wizard, добавил к нему твой класс и вспомогательные функции (корректность и того и другого я не исследовал). Итого всё на первый взгляд работает:



3. Проект добавил к этому сообщению.