Entwickler-Ecke
Sonstiges (Delphi) - Fehler beim Beenden des Programms
Masterrandy - Do 18.08.05 10:16
Titel: Fehler beim Beenden des Programms
Hallo,
habe ein Problem beim beenden meines Programm. Habe es von D3 nach D5 portiert. Läuft soweit ganz gut. Wenn ich aber eine andere DLL gelanden habe, das Programm danach schließe, bekomme ich die beiden Fehlermeldungen (siehe Anhang). Die zweite Meldung kommt immer wieder und ist nur zu schließen wenn ich über den Tastmanager den Task abschieße.
Woran kann das liegen? Ab Code hat sich nicht wirklich was geändert. Es sind jetzt einige Komponenten (von Dritten) anders und eine von D3 nach D5 portiert. Aber das scheint mir doch ein Problem in Delphi zu sein.
Gruß
Masterrandy
CenBells - Do 18.08.05 10:57
hi,
*Kristallkugel rauskram* Also.... *bedenkliches Schweigen* Hmm...
Nee, scherz beiseite. Ich würde sagen, du greifst auf ein objekt zu, das nicht mehr existiert.
Aber ohne code ist dir da nicht zu helfen, da diese fehler von so ziemlich alles und jedem verursacht werden können, ausser vielleicht deiner kaffeemaschine.
Gruß
KEn
Masterrandy - Do 18.08.05 11:32
Ok, ich weiß nicht ob es viel bringt, aber hier mal der Code, der die DLL im Hauptprogramm(ist auch eine DLL) aufruft:
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: 29: 30: 31: 32:
| if OQ_APPLICATIONSPLUGIN_TYPE.AsString = 'DDLL' then begin showmessage('Hier wird jetzt die Delphi DLL geladen !!'); try if AutoUpdate then begin if CheckForFileUpdate(OQ_APPLICATIONSAPP_PATH.AsString) = -1 then exit; end;
DLLHandle := LoadLibrary(PChar(AppPath + OQ_APPLICATIONSAPP_PATH.AsString)); if DLLHandle <> 0 then begin FuncPtr := GetProcAddress(DLLHandle, 'OpenDelphiModul'); if FuncPtr <> nil then begin @OpenDelphiModul := FuncPtr; AUploadDoc := OpenDelphiModul(application, Screen, OracleSession.LogonUsername, OracleSession.LogonPassword, OracleSession.LogonDatabase, TTreeNodeData(TV_AP.Selected.Data).FItemType, TTreeNodeData(TV_AP.Selected.Data).FItemKey, MAINPARAM, Param01); end; end else begin MessageDlg('Fehler 30: Modul "' + OQ_APPLICATIONSAPP_PATH.AsString + '" nicht gefunden !', mtError, [mbOk], 0); end; finally //FreeLibrary(DLLHandle); |
Die Zeile mit "FreeLibrary(DLLHandle);" ist ursprünglich deaktiviert. Habe sie mal aktiviert, bekomme dann aber gleich beim schließen der 2. DLL einen Fehler, und nicht erst bei Programmende.
Masterrandy - Do 18.08.05 13:16
Habe den Fehler beheben können. Lag an einer Komponente die ich verwende. War aber ein Zufallstreffer, dass ich den Fehler gefunden habe ;-)
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!