Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: DLL aus DCU läßt sich nicht laden

  Alt 8. Jul 2008, 15:12
Zitat von Luckie:
Hast du den mal unsere Vorschläge ausprobiert?
Ja, natürlich. Schon seit Anbeginn.
Was kann ich denn mehr tun, als vor direkt vor Loadlibrary mit FileExists zu prüfen, ob die DLL existiert.
Wie schon gesagt, die DLLs befinden sich genau an dem Ort, wo LoadLibrary sie laden soll.
Ich verwende zum Laden absolute Pfade, die beim Programmstart gesetzt werden.

Auch der Vorschlag von Apollonius die DLL mit FileCreate ( ... , GENERIC_READ ,..) gibt mir ein gültiges Handle zurück und ich könnte die DLLs sogar auslesen.

Nochmal: Es liegt nicht daran, dass evtl. die DLL nicht verfügbar ist. Sie ist genau da, wo sie geladen werden soll.

@SirThornberry
Leider darf ich die "defekte" DLL nicht heraus geben. Sorry, aber ist nicht meine Entscheidung.
Was hättest du denn vor damit?

Zum "Spaß" habe ich mal eine Test-Anwendung gebastelt, die nur LoadLibrary ruft (und FreeLibrary),
so das mir nix quer kommt, und siehe da, er lädt die DLL nicht -> 0-Handle !

hierfür habe ich die DLL ins gleiche Verzeichnis zu der Exe gelegt.

So nicht:LoadLibrary('C:\Programme\Test\meine.dll'); und so nicht: LoadLibrary(PChar(IncludeTrailingPathDelimiter(ExtractFilePath(Application.Exename)) + 'meine.dll')); und so auch nicht:LoadLibrary('.\meine.dll')); Erst wenn ich die DLL ohne die DCU's neu erstelle, funktionieren alle 3 Aufrufe.

Also ich glaube wirklich, den "Ort der DLL" kann ich zu 100% ausschließen.


Ich werd zum Elch!
  Mit Zitat antworten Zitat