AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delayed Loaded Libraries?

Ein Thema von himitsu · begonnen am 16. Nov 2012 · letzter Beitrag vom 16. Dez 2016
 
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#4

AW: Delayed Loaded Libraries?

  Alt 16. Dez 2016, 09:53
Also, ich weiß nicht ob das jetzt von neueren Delphi-Versionen nativ unterstützt wird (mangels Willen denen noch mehr Geld in den Rachen zu schmeißen), oder nicht. Compiler- bzw. linkerseitig meine ich. Aber ich benutze Delay-Loading noch für andere Dinge. So ist es eigentlich nicht möglich bestimmte DLLs als verzögert zu laden zu markieren - der Linker verhindert dies.

Aaaaber, durch die Callbacks, kann man natürlich schummeln. So kann man die DLL als "ntdll-delayed.dll" eintragen und dann einfach das korrekte HMODULE für ntdll.dll zurückgeben. Das benutze ich bspw. in ntobjx (delayimp.cpp) um die Funktionen aus der ntdll.dll verzögert zu laden.

Das eignet sich natürlich auch für andere DLLs die auf der schwarzen Liste des Linkers stehen und deshalb nicht als verzögert zu laden markiert werden können.

Gibt es eine Lösung, um alle DLLs erst dann zu laden, wenn sie benötigt werden? Evtl. eine Toolbox, ein Windows API call oder sonst etwas?
Jain.

Himitsu hatte ja bereits erklärt, warum es naturgemäß mit einigen DLLs nicht geht. Wenn du aber Anwendungs-DLLs hast, sollte es kein Problem sein. Der normale verzögerte Mechanismus lädt die DLL immer erst dann wenn eine Funktion aus der entsprechenden DLL benötigt wird. Allerdings ist das nicht zwangsläufig günstiger, weil Fehler beim Import so von dir zur Laufzeit behandelt werden müssen. Andererseits sieht es vielleicht freundlicher aus als die Fehlermeldung des Loaders, daß eine bestimmte DLL nicht auffindbar sei.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (16. Dez 2016 um 10:00 Uhr)
  Mit Zitat antworten Zitat
 


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 19:20 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