AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Laufzeitfehler bei Variante in DLL

Ein Thema von Tommy82 · begonnen am 21. Nov 2007 · letzter Beitrag vom 22. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Tommy82

Registriert seit: 12. Dez 2005
61 Beiträge
 
Delphi 2007 Professional
 
#1

Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:11
Hallo,

Ich habe eine DLL welche eine weitere DLL aufruft.
Ich nenne die erste DLL mal DLL1 und die andere Spaßeshalber DLL2.

In der DLL2 möchte ich eine Webseite auslesen. Da dieses auf dieser Seite irgendwie nicht mit IDHTTP geht, mache ich dies mit TWebBrowser.

Hier ist nun der Quellcode dazu.

Delphi-Quellcode:
Procedure TForm2.Starten;
var ini : TIniFile;
Quelltext,
      URL : String;
    vTemp : Variant;
begin
 ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Config/einstellungen.ini');
 Try
   URL := ini.ReadString('Aktuell','URL','');
   ShowMessage(URL);
   Fertig := False;
   Webbrowser1.Navigate(URL);
   if fertig <> True then Application.ProcessMessages;
   vTemp := WebBrowser1.Document;
   Quelltext := vTemp.Body.OuterHTML; <--- hier ist ein Fehler
   ShowMessage(Quelltext);
 Finally
   ini.free;
 End;
END;
Sobald ich aber den Quelltext in einen String laden möchte, bekomme ich immer einen Laufzeitfehler.
Interressanterweise funktioniert aber genau dashier in der DLL1 wunderbar. Aus Organisatorischen Gründen möchte ich es aber in DLL2 haben. Sobald ich die Zeile rausnehme geht auch alles nur ich habe keinen Quelltext.
Was mache ich falsch ?

mfg

Tommy82
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:15
Nimm besser OleVariant und WideString
Markus Kinzler
  Mit Zitat antworten Zitat
Tommy82

Registriert seit: 12. Dez 2005
61 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:16
Der Laufzeitfehler bleibt trotzdem bestehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:19
Und was für ein Fehler? Wie sieht das Interface der Dll aus?
Markus Kinzler
  Mit Zitat antworten Zitat
Tommy82

Registriert seit: 12. Dez 2005
61 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:27
Delphi-Quellcode:
library DLLTest2;

uses
  SysUtils,
  Classes,
  Unit2 in 'Unit2.pas{Form2};


Procedure Anzeigen;
var Form : TForm2;
BEGIN
 Form2 := TForm2.Create(NIL);
 Form2.Starten;
end;

 exports
   Anzeigen;

begin
end.
Aufgerufen wird die DLL wie folgt:
Delphi-Quellcode:
Procedure TForm1.Zeige_PlugIns(Dateiname: string; Name: string);
var
 PlugIns:TPlugIns;
 Handle : THandle;
BEGIN
 Handle := LoadLibrary(PCHAR(ExtractFilePath(ParamStr(0)) + '\PlugIns\' + Dateiname));
 IF Handle <> 0 THEN
 BEGIN
   @PlugIns := GetProcAddress(Handle, PCHAR(Name));
   IF @PlugIns <> NIL THEN
     PlugIns
   ELSE
     Showmessage('Fehler beim Laden der Datei "'+Dateiname+'"');
 END;
 FreeLibrary(Handle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  zeige_DLL('DLLtest2.dll','Anzeigen')
end;
Als fehler bekomme ich nun : "Zugriffsverletzung bei Adresse 01E61FAB in Modul 'DLLtest2,dll'. Lesen von Adress 00000000."

Aber nur bei der oben genannten zeile.

mfg

Tommy82
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:41
Dann greifst du auf ein nicht initialisiertes Objekt zu.
Wie sieht zeige_DLL() aus?
In Anzeigen deklarierst du eine Variable Form, verwendest aber Form2
Debugge die Dll doch mal.
Markus Kinzler
  Mit Zitat antworten Zitat
Tommy82

Registriert seit: 12. Dez 2005
61 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:45
Zeige_DLL sieht genauso aus wie zeige_PlugIns, nur das der pfad nen anderer ist
LoadLibrary(PCHAR(ExtractFilePath(ParamStr(0)) + '\DLLs\' + Dateiname) Das Form2 steht bei mir da, habsch wohl ausversehen hier beim tippen vernichtet.

Die Starten ist oben angegeben. Die soll den Quelltext auslesen.

Der Debugger funzt einwandfrei.

mfg

Tommy82
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:46
Im Debugger kommt der fehler dann nicht?
Markus Kinzler
  Mit Zitat antworten Zitat
Tommy82

Registriert seit: 12. Dez 2005
61 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 17:51
Nein, denn es sieht so aus:

Delphi-Quellcode:
Procedure Anzeigen;
var Form2 : TForm2;
BEGIN
 Form2 := TForm2.Create(NIL);
 Form2.Starten;
end;
Is wohl hier beim ins Forum setzen was abhanden gekommen. Falsche Taste oder so.
  Mit Zitat antworten Zitat
Tommy82

Registriert seit: 12. Dez 2005
61 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Laufzeitfehler bei Variante in DLL

  Alt 21. Nov 2007, 18:03
Welches Objekt ist denn nicht inizialisiert ? Ich finde da nix.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:47 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