AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Probleme / Zugriffsverletzung mit dynamisch geladener BPL
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme / Zugriffsverletzung mit dynamisch geladener BPL

Offene Frage von "robvs"
Ein Thema von robvs · begonnen am 8. Okt 2008 · letzter Beitrag vom 9. Okt 2008
Antwort Antwort
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#1

Probleme / Zugriffsverletzung mit dynamisch geladener BPL

  Alt 8. Okt 2008, 16:29
Hallo zusammen!

Ich habe vor mit dynamisch geladenen Packages zu arbeiten, um ein Programm zu flexibilisieren / Programmfunktionen zu kapseln.

Dabei übergebe ich eine IB_Connection an die dynamisch geladene Funktion, die im Folgenden innerhalb der geladenen BPL verwendet werden soll.
Und genau dann fangen die Probleme an: Ich kann die Connection zwar der Query zuweisen und im "Auswerten/Ändern" scheinen alle Werte korrekt vorhanden zu sein, jedoch bekomme ich dann beim qry.Open eine Zugriffsverletzung. Vermutlich liegt das Problem im Speichermanagement, aber ich komme an der Stelle nicht weiter. Kann jemand das Problem diagnostizieren und weiß eventuell eine Lösung?

Hier nun der relevante Quelltext der aufrufenden Exe:
Delphi-Quellcode:
procedure TfrmListen.BitBtnTESTClick(Sender: TObject);
var
   hm: HModule;
   ExecF: procedure(Owner: TIB_Connection);
begin
     hm:=LoadPackage(ExtractFilePath(ParamStr(0)) + 'TEST.bpl');

     if hm <> 0 then
     try
        @ExecF:=GetProcAddress(hm, 'RUN');

        if Assigned(ExecF) then
        begin
             ExecF(fsbListen.Databases.Mandant);
        end
        else
        begin
             ShowMessage ('Kein RunProgram gefunden!');
        end;
     finally
        UnloadPackage(hm);
     end
     else
         ShowMessage ('bpl nicht gefunden');
end;
Und nun die Methoden der BPL:
Delphi-Quellcode:
procedure RUN(Owner: TIB_Connection);
var
   frm: TForm1;
begin
     frm := TForm1.Create(Owner);
     frm.ShowModal;
end;

constructor TForm1.Create(Owner: TIB_Connection);
begin
     FOwner := Owner;
     inherited Create(FOwner);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
   qry: TIB_query;
begin
     showmessage(FOwner.DatabaseName);

     qry := TIB_Query.Create(FOwner);
     qry.IB_Connection := FOwner;
     qry.SQL.Text := 'select * from beharzt';

     showmessage('bis hier komm ich');

     qry.Open;
     //IB_Query1.IB_Connection := FOwner;
     //IB_Query1.Open;
end;

exports RUN;
Viele Grüße
Rob

PS: Das Ganze wird unter D2006 Enterprise mit IBObjects 4.8 entwickelt
  Mit Zitat antworten Zitat
robvs

Registriert seit: 3. Jul 2006
30 Beiträge
 
#2

Re: Probleme / Zugriffsverletzung mit dynamisch geladener BP

  Alt 9. Okt 2008, 08:57
HILFE?!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz