AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Abfangen von Exceptions bei LoadLibrary
Thema durchsuchen
Ansicht
Themen-Optionen

Abfangen von Exceptions bei LoadLibrary

Ein Thema von igel457 · begonnen am 22. Dez 2008 · letzter Beitrag vom 21. Sep 2009
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: Abfangen von Exceptions bei LoadLibrary

  Alt 21. Sep 2009, 21:16
Altbekannt, da der PE Loader abhängig von dem Modus still oder laut das ganze ausgibt. Aber anscheinend ist das damals bei mir wohl untergegangen.

Aber mal ein zusätzlicher Hinweis: DLLs die in MS Visual Studio C++ geschrieben wurden haben in ihrem Startup Code die Eigenheit die FPU Exception Mask umzustellen. Dadurch werden illegale Operationen still und heimlich von der FPU behandelt, also es wird NaN und INF berechnet anstatt einer Exception. Delphi wiederrum setzt Exceptions voraus und kommt dadurch spätestens bei irgendwelchen Fließkommaberechnungen in die Bedrängnis, wenn es von NaN oder INF etwas berechnen soll. Von daher sollte hier nochmals explizit Delphi-Referenz durchsuchenSafeLoadLibrary() erwähnt werden. Werden DLLs komplett statisch geladen kommt der Startup Code der App (somit Delphi der die Maske umsetzt) erst nach dem Startup Coder statisch gelinkten DLLs, da der PE Loader diese Abhängigkeiten vorher auflösen muss. Wenn eine DLL oder auch eine solche DLL Kette aber dynamisch geladen wird hat man ein Problem. Von daher der Hinweis.

Sorry nochmals dass ich damals nicht auf die WinAPI Funktion hingewiesen hatte.

@Chris.R: SafeLoadLibrary() wurde für die von mir beschriebene Gegebenheit eingeführt und mit Delphi 7 um den zweiten Parameter erweitert, da dieser zuvor nicht von außen steuerbar war.
  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 13:17 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