Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Непонятная ошибка  [new]
patrick1968
Member

Откуда:
Сообщений: 386
Добрый день. Столкнулся тут с очень странной проблемой. Работаю тут над проектом и вроде основной функционал сделан (получение информации с датчика) осталось "прикрутить" дополнительные функции и навести красоту, появилась совершенно непонятная ошибка.
а именно так всё работает, но если на форму поместить какой либо компонент (картинку, glyph у кнопки) и в ходе работы нажать "подключить" (там срабатывает функция из DLL-работает корректно) и затем закрыть форму, то появляется access violation. Если картинку убрать то всё в норме, ничего не могу понять. хотя знаю, что чудес не бывает. Проект прилагаю. DLL пришлю отдельно,а то в размер не укладываюсь. Может кто знает в чем проблема. Заранее сильно благодарю

К сообщению приложен файл (PNG.RAR - 61Kb) cкачать
7 июн 18, 10:00    [21474797]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
DimaBr
Member

Откуда:
Сообщений: 10786
Поставьте бряку (можно условную) в ReflectionTimerTimer и UserMessage.
Попадает ли туда при закрытии формы ?
7 июн 18, 10:14    [21474839]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
patrick1968
Member

Откуда:
Сообщений: 386
Нет при закрытии формы туда не заходит, я так думаю это происходит при освобождении памяти, но при чем тут картинки - не пойму
7 июн 18, 10:29    [21474915]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
patrick1968
Member

Откуда:
Сообщений: 386
Выяснил, что исключение возникает в модуле System здесь,

if InitContext.DLLInitState = 0 then
while ExitProc <> nil do
begin
@P := ExitProc;
ExitProc := nil;
P; <-----------------------------------------------------------
end;
7 июн 18, 10:51    [21475024]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
DimaBr
Member

Откуда:
Сообщений: 10786
Портите память
7 июн 18, 11:04    [21475083]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
patrick1968
Member

Откуда:
Сообщений: 386
Такое впечатление, что не было выхода из какой-то процедуры, но почему это срабатывает при отсутствии картинок?
7 июн 18, 11:04    [21475087]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
patrick1968
Member

Откуда:
Сообщений: 386
DLL сторонние, очевидно там что-то портится
7 июн 18, 11:05    [21475093]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1950
patrick1968
DLL сторонние, очевидно там что-то портится
Совсем неочевидно. Код - жесть. А по теме - надо знать точно, какое точно требуется выравнивание для структур, соглашение вызовов. Почему часть cdecl, а часть stdcall? Зачем используются критические секции? Что-то будет работать в потоке?
7 июн 18, 12:30    [21475526]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
patrick1968
Member

Откуда:
Сообщений: 386
Да, там поток, ну а соглашение вызовов - таковы условия разработчиков DLL
7 июн 18, 12:33    [21475542]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 1950
А выравнивание структур? Корректно ли завершается поток? Кстати, на чём DLL написана?
7 июн 18, 12:40    [21475591]     Ответить | Цитировать Сообщить модератору
 Re: Непонятная ошибка  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 46456

patrick1968
DLL сторонние, очевидно там что-то портится

DrMemory в руки и смотреть что и где портится. Если действительно из сторонней DLL -
тыкать логом в разработчиков. Но скорее всего ты что-то опять накосячил с форматом вызовов.

Posted via ActualForum NNTP Server 1.5

7 июн 18, 12:50    [21475643]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить