![]() |
Exception vor Application.Initialize
Hallöchen
Wie kann ich eine Exception noch vor Application.Initialize abfangen (und ggf. behandeln). Das Problem tritt beim Laden einer DLL auf, weil die verwendete Funktion erst ab XP SP 2 unterstützt wird. Die einfache Abfrage ob die gewünschte DLL verfügbar ist, ist ja nicht das Problem, die besteht viel mehr darin, das die Exception noch vor Application.Initialize auftritt. Also noch bevor irgendwelcher Code zu tragen kommt. Oder wie oder was :gruebel: Gruß Harry und allen eine "Guten Rutsch" |
Re: Exception vor Application.Initialize
Zitat:
natürlich gibt es ein Leben vor Application.Inialize. Schreib eine Funktion, die prüft, ob es die DLL gibt (mit FileExists o.ä.), definiere eine globale Variable für das Ergebnis und rufe die Funktion in deiner .DPR-Datei als allererstes auf. Das nützt natürlich nur was, wenn du die DLL dynamisch lädst und bei Nichtexistenz das garnicht erst versuchst. Gruss Reinhard |
Re: Exception vor Application.Initialize
Sowas hatte ich bereits. Ergebnis blieb das Gleiche. Es rumpelt, noch bevor der Code druchlaufen wird.
|
Re: Exception vor Application.Initialize
Das wird nicht gehen. Wenn die DLL statisch in die Exe gelinkt wird, dann wird die Exception schon vom Loader ausgelöst, weil er die DLL nicht finden kann. Ist nicht sicher gestellt, dass es die DLL gibt, hilft nur noch eins, nämlich zur Laufzeit laden und die Funktionen dynamisch importieren. Sihe dazu auch das DLL Tutorial von Olli:
![]() |
Re: Exception vor Application.Initialize
Sowas in der Art konnte ich mit schon denken.
Dann rutsch ich mit Assarbad's Tuts in neue Jahr :mrgreen: |
Re: Exception vor Application.Initialize
Zitat:
hättest du in meiner Antwort alle 3 Zeilen gelesen und nicht nach 2 schon aufgehört, da stand auch schon "Dll dynamisch". Naja, war wohl doch zu lang. Gruss Reinhard |
Re: Exception vor Application.Initialize
Lieber Reinhard Kern,
da die Av noch vor dem eigendlichen Dll-Zugriff kommt bin ich nicht sicher ob dies nun "Dynamisch" oder "Statisch" ist. |
Re: Exception vor Application.Initialize
Moin Harry,
wenn Du die DLL mittels: function Funktionsname(parameter) : Result; external 'DLLNAME' einbindest, wird sie statisch eingebunden => Das Betriebssystem versucht die DLL und die Funktionsaufruf in der DLL zu finden. Wenn dabei eines von beiden fehlschlägt => Exception. Zum dynamischen Einbinden brauchst Du ![]() ![]() Du müsstest also wissen können, wie die DLL eingebunden wird ;-) |
Re: Exception vor Application.Initialize
Danke für die Erklärung. Dann war es wohl statisch :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz