| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > при закрытии модальной формы вылетает AV |
| Автор: morpheyushka 16.6.2008, 19:20 | ||||
| Возникла проблема...я разрабатываю окно, которое находится в dll и при подключении к основной программе, при закрытии моего окна вылетае Access Violetion по обращению (записи) к памяти по адресу 0x00...вобщем полнейший nil. Но самое интересное, что у меня такая ошибка не возникает. Я всё разрабатывал в Коде Гир 2007, а основная программа в делфи 7. Возможно ли эта ошибка вылетает из-за разных версий, или что то не так у меня? Привожу код: dll - вызов формы:
при выходе из этой процедуры (та что выше...то есть BetMessage.Free; end; - а именно после end) вылетает AV в exe
|
| Автор: RomanEEP 17.6.2008, 10:54 |
| Мне кажется проблема в разных менеджерах памяти и работой со строками. Попробуй для теста выкинуть строковые параметры из библиотечной процедуры. |
| Автор: morpheyushka 17.6.2008, 14:49 |
| пробовал...нормально выбрасывает все параметры, мне кажется нужно побаловаться с директивами вызова |
| Автор: ama_kid 17.6.2008, 15:17 | ||
| morpheyushka 1) проверяй, что у тебя в конструкторе\деструкторе формы - возможно там идёт некорректная работа с динамическими объектами. 2) Ты передаешь в конструктор формы объект Application dll, заодно присваивая ему хендл основного приложения (строка присваивания хендла убила, если честно 3) Ну и еще одно:
|
| Автор: morpheyushka 17.6.2008, 15:50 |
2 ama_kid, пробовал - тоже самое((( я присваивал хэндл для того, чтобы и приложение и моя форма из dll были в одной панели. Подскажи как это сделать правильно. И ещё - как посмотреть конструктор\деструктор формы?))) |
| Автор: ama_kid 17.6.2008, 16:06 |
| Можешь выложить максимально обрезанные исходинки проекта, где наблюдается исходная проблема? С нуля в лом создавать, к тому же не факт, что она у меня проявится, если я сам начну моделировать ситуацию... |
| Автор: morpheyushka 17.6.2008, 16:09 |
| всё...тема закрыта - как я и предпологал - нужно было побаловаться с директивами вызова....как видно по коду - у меня стоит безопасный вызов, а exe, которое вызывает мою форточку, скорее всего stdcall. Я сменил у себя в объявлении на стандартный вызов и всё заработало. Просто у меня не было исходника exe - это совместный проект. огромное всем спасибо за внимание |