![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте, всем привет.
Делаю неявную загрузку DLL с функцией, которая принимает параметры и возвращает значение, а также отображаем форму. Вот сама процедура DLL Код:
Function ShowForm(user_id:string;for_select:boolean):integer; export; stdcall; begin dm:=Tdm.Create(nil); form3:=tform3.Create(nil); ads_list.user_id:=user_id; if for_select then form3.BitBtn2.Visible:=true; FORM3.ShowModal; result:=DM.IBDS_AIDS.fieldbyname('id').AsInteger; freeandnil(form3); freeandnil(dm); end; Вот вызов из приложения: //объявление Function ShowForm(user_id:string;for_select:boolean):integer; stdcall; external 'Aids.dll'; //вызов i:=ShowForm(cur_usr.USER_ID,true); Когда вызываю функцию DLL появляется форма, возвращается значение, все как нужно. Но когда я закрываю основное приложение, то выскакивает access violation, который ссылается на DLL. Я так понимаю, что неправильно освобождаю память.. Господа!! Что делать? Спасибо! Последний раз редактировалось M.A.D.M.A.N., 15.10.2014 в 11:37. |