Форум: "Основная";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
ВнизMDI + DLL Найти похожие ветки
← →
snake1977 (2004-01-15 17:16) [0]Здравствйте! поскажите почему вываливается ошибка при выгрузке DLL.
После загрузки DLL вызывается из нее процедура
Procedure Start(App:TApplication; Frm:TForm); export; StdCall;
Begin
SaveApp:=Application;
InitApp:=App;
Application:=App;
PrForm:=TPrForm.Create(Application);
PrForm.Show;
Application:=SaveApp;
End;
перед выгрузкой DLL вызывается процедура
Procedure Stop; export; StdCall;
Begin
Application:=InitApp;
PrForm.Close;
Application:=SaveApp;
end;
В основной программе , после выполнения следующих строк, выдается ошиба типа Acces violation
....
@Proc:=GetProcAddress(Handle1, "Stop");
try
if @proc<>nil Then Proc;
except
end;
FreeLibrary(Handle1);
end;
← →
vl_chel (2004-01-17 13:30) [1]Вполне естественно!!
НЕЛЬЗЯ копировать ссылку на объект Application, подменять можно только Application.Handle.
var
SaveApp : THandle;
Procedure Start(App:THandle; Frm:TForm); export; StdCall;
Begin
SaveApp:=Application.Handle;
Application.Handle :=App;
Application:=App;
PrForm:=TPrForm.Create(Application);
PrForm.Show;
End;
Procedure Stop; export; StdCall;
Begin
PrForm.Close;
Application.Handle :=SaveApp;
end;
непонятно значение параметра Frm:TForm
может его надо описывать с var и в конце процедуры Frm := PrForm;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c