AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Welche DLL's benötigt eine andere DLL beim Laden ?
Thema durchsuchen
Ansicht
Themen-Optionen

Welche DLL's benötigt eine andere DLL beim Laden ?

Ein Thema von Jaynder · begonnen am 8. Sep 2017 · letzter Beitrag vom 8. Sep 2017
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Jaynder
Jaynder

Registriert seit: 2. Dez 2004
Ort: Süderelbe
134 Beiträge
 
Delphi 10.4 Sydney
 
#1

Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 11:45
Ich benutze in meinem Delphi-Projekt eine umfangreiche Sammlung von in C++ geschriebenen dll's. Nun gibt es einen neue Version dieser Bibliothek und mein LoadLibrary schlägt auf einmal mit GetLastError=193 fehl, weil irgendeine statisch nachgeladenen dll fehlt. Wie kann ich herausfinden, welche das ist?

Erweitert: wie kann ich vor dem LoadLibrary herausfinden, welche dll's von einer beliebigen dll benötigt werden? Dann könnte ich vorher prüfen, ob wirklich alle benötigten vorhanden sind.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 11:48
Da eignet sich der DependenyWalker sehr gut
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jaynder
Jaynder

Registriert seit: 2. Dez 2004
Ort: Süderelbe
134 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 12:01
Der hilft mir leider nicht. Hat auch schon in der vorigen funktionierenden Version nur Fehler geworfen und dreht sich auch noch im Kreis.

Würde das auch lieber in meiner eigene App checken können
  Mit Zitat antworten Zitat
Benutzerbild von Jaynder
Jaynder

Registriert seit: 2. Dez 2004
Ort: Süderelbe
134 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 12:07
ist ja auch schon von 2006 das Teil, dann wundert es mich nicht
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 12:08
Im Process Monitor beobachten, welcher Aufruf fehlschlägt!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 12:09
In deinem eigenen Programm bleibt dir denke ich nur einen Hook auf LoadLibrary zu setzen und zu schauen was da alles geladen wird nachdem du selbst LoadLibrary aufgerufen hast.

Mit dem (edit: gerade schon genannten) Process Monitor siehst du direkt welche DLLs (und andere Dateien) wo gesucht werden bevor der Fehler kommt und mit dem API Monitor kannst du die Aufrufe an LoadLibrary auch extern nachverfolgen (wäre hier aber etwas viel Aufwand, nur der Vollständigkeit halber).
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Jaynder
Jaynder

Registriert seit: 2. Dez 2004
Ort: Süderelbe
134 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 12:19
Danke für die Tipps, ich denke ich komme damit weiter
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.053 Beiträge
 
Delphi 12 Athens
 
#8

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 13:26
Auch wenn der DependenyWalker bissl "älter" ist,
an der grundsätzlichen Funktion der Win32-API und des PE-Formats hat sich seitdem nichts verändert.

Wenn es nur um "statische" Verlinkungen geht,
die Imports und Exports kannst du aus einer PE (EXE/DLL/BPL) auch selber auslesen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Jaynder
Jaynder

Registriert seit: 2. Dez 2004
Ort: Süderelbe
134 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 15:13
@himitsu: hast du das evtl ein wenig konkreter ?

Habe inzwischen mit PEStudio experimentiert. Das zeigt zwar nicht so einen Müll an wie der DW, findet aber die weiteren dll's nicht über den Suchpfad, sondern nur wenn sie direkt im Ausführungsverzeichnis liegen. Schade...
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Welche DLL's benötigt eine andere DLL beim Laden ?

  Alt 8. Sep 2017, 16:05
Mit dem Process Monitor siehst du die fehlende DLL in ein paar Sekunden...
Einfach filtern mit Process Name is DeineExe, dann nach dem LoadLibrary im Debugger oder mit einer MessageBox anhalten, dann einfach nachschauen was als letztes geloggt wurde...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz