Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem mit "Exit"
Jacdelad - So 02.04.06 13:24
Titel: Problem mit "Exit"
Hallo,
ich habe ein Problem mit einer DLL, die ich in Delphi 7 schreibe: Die DLL ist für ein Programm in XProfan 8 und höher gedacht. Dazu muss der DLL-Aufruf in Variablen schreiben, deren Adresse ich im Aufruf übergebe. Hier mal ein Teil des Codes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| library Parcival;
uses SysUtils, Windows, StrUtils, Math, Graphics;
var err,itr:^Integer; {$R *.res}
function Parse(fx2:ANSIString;term2:PChar;fehler,iterations:Integer):Integer;stdcall; var h,g,f,e:Integer;goon,comma:Boolean;fx,z,p,q,es:ANSIString;x,y,ze:Extended;tr:TRoundToRange; begin err:=Ptr(fehler); itr:=Ptr(iterations); exit; Result:=0; end;
exports Parse name 'Parse';
begin end. |
Mein Problem ist, dass die DLL keinen Fehler erzeugt, wenn ich sie ohne exit beende. Beim exit stürzt mein Prog aber ab. Kann mir jemand helfen???
Jac
Moderiert von
Gausi: Delphi-Tags hinzugefügt.
Delete - So 02.04.06 13:51
kenn mich zwar mit DLL's nicht aus. aber warum beendest du deine funktionen nicht ordentlich? wenn dir die abfragen mit if zu mühsam sind.. nimm doch goto.. und spring an das ende der routine.... ggf. nimm noch 'n wert mit den du später setzen möchtest...
hier mal aus dem kopf...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure foo; label xy; begin if... if... if... end... if .... while... if fehler then goto xy; for... case... if.... ... xy; ... end; |
MrSaint - So 02.04.06 14:40
Probier doch mal, das Result gleich am Anfang der Procedure zu setzen. Wenn du ein Exit vor dem Result := hast, ist der Wert von Result "undefiniert". Sprich, da kann so ziemlich alles drinstehen. Vielleicht spinnt dann die Host-Anwendung, wenn sie keinen richtigen Rückgabewert bekommt....
MrSaint
Jacdelad - So 02.04.06 17:46
@Grenzgaenger: Die Funktion enthält etliche verschalchtelte if- unf while-Strukturen, das würde äußerst kompliziert werden.
@MrSaint: Naja, das hab ich jetzt nicht hingeschrieben, wird aber gleich am Anfang erledigt!
Leider bin ich immer noch nicht weiter...
Jac
Jacdelad - So 02.04.06 17:53
Ach ja, mit GoTo funktionierts auch nicht. Die Funktion läuft an sich fehlerfrei; der Fehler tritt nur auf, wenn sie von einer anderen Funktion aufgerufen wird!
Jac
Jacdelad - Mo 03.04.06 11:57
Ich hab den Fehler gefunden! Die Funktion an sich war nicht fehlerhaft, sondern die aufrufende! Danke für die Mühe!!!
Jac
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!