Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка EAccessViolation in module rtl70.bpl [D7, Win2k]


elected ©   (2004-12-24 04:02:00) 

Приветствую ALL !
Работаю с BPL загружаю пакет из EXE все нормально
при выгрузке пакета валится ошибка EAccessViolation in module rtl70.bpl
бьюсь бьюсь ничего не помогает
Помогите кто знаетв чем дело.


Sancho   (2004-12-24 08:57:00) [1]

Из хелпа по TCustomForm.OnClose:
If a form is an SDI child form, Action defaults to caHide.
Т.е. Form2 стала просто невидимой. Надо написать:

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action:= caFree;
end;


elected   (2004-12-24 04:54:00) [2]

Все другого кода нет используется ODAC не ломанный лицензионный


elected   (2004-12-24 04:52:00) [3]

EXE


procedure TForm1.Button1Click(Sender: TObject);
type
 TLibraryDLL = procedure(Orases:TOraSession);
var
 Handle:THandle;
 LibraryDLL:TLibraryDLL;
 LibraryName,LibaryProcedure:Pchar;
begin
try //Ëîã Èñêëþ÷åíèé
 try
   LibraryName:='Package1.BPL';
   LibaryProcedure:='ExternalDLL';

   Handle := LoadPackage(LibraryName);
   if Handle 0 then
   begin
     @LibraryDLL := GetProcAddress(Handle,LibaryProcedure);
     if @LibraryDLL nil then
     begin
       if OraSes.Options.Net then OraSes.Disconnect;
       LibraryDLL(OraSes);
       if OraSes.Options.Net then OraSes.Connect;
     end
     else
     begin
       MessageDlg('Îøèáêà çàãðóçêè ìîäóëÿ '+LibraryName+#13+'Îáðàòèòåñü ê ñèñòåìíîìó àäìèíèñòðàòîðó',mtError,[mbOK],0);
     end;
   end
   else
   begin
     MessageDlg('Íå íàéäåí ìîäóëü '+LibraryName+#13+'Îáðàòèòåñü ê ñèñòåìíîìó àäìèíèñòðàòîðó',mtError,[mbOK],0);
   end;
 finally
   UnloadPackage(Handle);
 end;
except //Ëîã Èñêëþ÷åíèé
 on E: Exception do
 begin

 end;
end;
end;


BPL


 procedure ExternalDLL (OraSesion:TOraSession);

var
 Form2: TForm2;

exports ExternalDLL;  

implementation

{$R *.dfm}

procedure ExternalDLL (OraSesion:TOraSession);
begin

   Form2:=TForm2.Create(Application);
   Form2.OraSession1.AssignConnect(OraSesion);
   Form2.ShowModal;
end;


Palladin   (2004-12-24 04:49:00) [4]

А ты считаешь это вопрос:
"
> Дак BPL настока простая что уже некуда 2 притопа 3 прихлопа. Че деать то?"


elected   (2004-12-24 04:40:00) [5]

Palladin , ты считаешь это совет ? =-)
"Найти третий притоп, который не учитывается во втором прихлопе"


Palladin   (2004-12-24 04:39:00) [6]

как хочешь


elected   (2004-12-24 04:28:00) [7]

Народ мне ща ужене до шуток правда
дайте дельный совет


Palladin   (2004-12-24 04:18:00) [8]

Найти третий притоп, который не учитывается во втором прихлопе.


elected   (2004-12-24 04:17:00) [9]

Да если из этого BPL делаешь DLL все отличненько работает


elected   (2004-12-24 04:15:00) [10]

Дак BPL настока простая что уже некуда 2 притопа 3 прихлопа
Че делать то?


Palladin   (2004-12-24 04:12:00) [11]

Я знаю. Где то нарушена работа с памятью.


Наверх

Титульная страница Поиск, карта сайта Написать письмо