AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programm mit DLL > Fehlermeldung nach eigentlicher Procedur
Thema durchsuchen
Ansicht
Themen-Optionen

Programm mit DLL > Fehlermeldung nach eigentlicher Procedur

Ein Thema von Thorben86 · begonnen am 2. Feb 2004 · letzter Beitrag vom 2. Feb 2004
Antwort Antwort
Thorben86

Registriert seit: 20. Nov 2003
Ort: Brühl
365 Beiträge
 
Delphi 2005 Personal
 
#1

Programm mit DLL > Fehlermeldung nach eigentlicher Proced

  Alt 2. Feb 2004, 21:05
Hi, ich bin gerade bei nem Programm, wo ich 2 Proceduren in ne Dll ausgelagert hab. Die ein klappt ja auch, soll nur ne datei löschen, aber die andere macht immer ne fehlermeldung, obwohl die keinen sinn macht.

Delphi-Quellcode:
Code inner DLL:
procedure statistik(user:pchar;rank,versuche,nummer:integer);
var ini:TiniFile;
begin
user:=pchar(InputBox('Statistik', 'Bitte Namen eingeben', ''));
if(user='') then
user:='Unbenannt';
ini := TIniFile.Create(ExtractFilePath(Application.exename)+'Raten.dat');
ini.WriteString('Wichtig','Wichtig','Wenn Sie diese Datei Löschen, gehen alle Daten der Statistik verloren!');
ini.WriteString(InttoStr(nummer),verschluesseln('Rank'),verschluesseln(InttoStr(rank)));
ini.WriteString(InttoStr(nummer),verschluesseln('Name'),verschluesseln(user));
ini.WriteString(InttoStr(nummer),verschluesseln('Versuche'),verschluesseln(InttoStr(versuche)));
ini.UpdateFile;
ini.free;
end;
Delphi-Quellcode:
Im Programm:
type
Tstatistik = procedure;

procedure statistik(user:pchar;rank,versuche,nummer:integer);


procedure Tf_raten.statistik(user:pchar;rank,versuche,nummer:integer);
   var statistik: Tstatistik;
    Handle: THandle;
begin
Handle:=LoadLibrary(PChar('statistikdll.dll'));
if Handle <> 0 then
   begin
        @statistik := GetProcAddress(Handle, 'statistik');
        if @statistik <> nil then
           begin
           statistik;
           end;
        FreeLibrary(Handle);
   end;
   showmessage('ende');
end;
Das geniale hier ist, dass er die Message 'Ende' auch noch anzeigt und erst wenn die Procedure eigentlich fertig ist, amcht er ne fehlermeldung(liegt nich an der Message )
Fehlermeldungen sind im anhang, wäre zu aufwändig die abzutippen
1., ist die direkte Fehlermeldung und die 2. die, die erscheint, wenn mann dei anwendung dann über delphi neustartet.
Kann mir jemand sagen, wass ich da falsch gemacht hab???
Miniaturansicht angehängter Grafiken
fehler2_135.jpg   fehler1_205.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Programm mit DLL > Fehlermeldung nach eigentlicher Pr

  Alt 2. Feb 2004, 21:14
Ich hatte vor kurzem auch so ein Problem mit einer dll. Ich habe allerdings eine function in der dll und da ist mir dann aufgefallen, dass man das Result erst ganz am Schluss zuweisen darf, da die Hauptapplikation sonst sofort bei Zuweisung z.B. eines Defaultwertes meint die Funktion wäre abgearbeitet und arbeitet mit diesem Rückgabewert weiter.
Das Problem an der Sache scheint zu sein, dass die procedure nur "angekickt" wird, aber nicht synchron zum Hauptthread ausgeführt wird. Anschliessend wird die dll entladen, obwohl die procedure noch nicht fertig ist und dann crasht es. Versuch mal eine Function draus zu machen und erst ganz am Schluss z.B. Result:=True zuzuweisen, dann sollte das Hauptprogramm "warten"...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  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 10:07 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