AGB  ·  Datenschutz  ·  Impressum  







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

windows 10 loadlibrary error

Ein Thema von HPW · begonnen am 23. Nov 2015 · letzter Beitrag vom 24. Nov 2015
Antwort Antwort
Seite 1 von 2  1 2      
HPW

Registriert seit: 28. Feb 2003
160 Beiträge
 
Delphi 7 Professional
 
#1

windows 10 loadlibrary error

  Alt 23. Nov 2015, 20:43
Hallo,

Seit langer Zeit hatte ich folgenden code zum Dll-Laden genutzt:

DllHandle := LoadLibrary( Pchar( 'xxxxxx.dll' ));

Ich habe mich also darauf verlassen, das Windows die Dll im Suchpfad mit den bekannten Regeln findet.
Dabei war meine Dll im Programmverzeichnis.

Unter Win10 geht das nun so nicht mehr.
Nun muss man den kompletten Pfad mitgeben damit es wieder funktioniert.

Grüsse,

Hans-Peter
Hans-Peter
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: windows 10 loadlibrary error

  Alt 23. Nov 2015, 21:59
LoadLibrary( Pchar( 'xxxxxx.dll' )) Du lädst die DLL aus dem aktuellen Arbeitsverzeichnis, welches nicht zwingen das Programmverzeichnis sein muss. Unter Windows < 10 hat es wohl eher durch Zufall funktioniert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#3

AW: windows 10 loadlibrary error

  Alt 24. Nov 2015, 01:07
Du lädst die DLL aus dem aktuellen Arbeitsverzeichnis, welches nicht zwingen das Programmverzeichnis sein muss. Unter Windows < 10 hat es wohl eher durch Zufall funktioniert.
Stimmt nicht. Den Regeln nach wird immer zuerst im Programmverzeichnis gesucht. Das aktuelle Arbeitsverzeichnis kommt im normalen "SafeDllSearchMode" erst an vorletzter Stelle. Daran wird sich in Windows 10 bestimmt nichts geändert haben.

Hans-Peter, wie heißt denn die DLL genau? Falls sie denselben Namen wie eine der "KnownDLLs" hat, kann es nicht funktionieren. Ob sich an der Liste der KnownDLLs in Windows 10 etwas geändert hat, weiß ich nicht.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: windows 10 loadlibrary error

  Alt 24. Nov 2015, 10:21
Ohne es nachgeschlagen zu haben: Sagt einem der where-Befehl (in der Konsole) nicht sogar genau die Reihenfolge in welcher sich eine Anwendung für die DLL entscheiden würde?
Miniaturansicht angehängter Grafiken
cwindowssystem32cmd.exe_2015-11-24_10-17-10.png  
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: windows 10 loadlibrary error

  Alt 24. Nov 2015, 12:25
Ok, stimmt. Ist ja eine DLL und keine normale Datei. Aber wenn er weiß, wo sie liegt (Programmverzeichnis) warum gibt er dann nicht gleich den Pfad mit an? Dann würde es erst gar nicht zu solchen Fehlern kommen. Denn offensichtlich hat sich zu Windows 7/8 doch was geändert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
SMO

Registriert seit: 20. Jul 2005
178 Beiträge
 
Delphi XE6 Professional
 
#6

AW: windows 10 loadlibrary error

  Alt 24. Nov 2015, 16:06
Ohne es nachgeschlagen zu haben: Sagt einem der where-Befehl (in der Konsole) nicht sogar genau die Reihenfolge in welcher sich eine Anwendung für die DLL entscheiden würde?
Nein, eben nicht, siehe den MSDN-Artikel, den ich verlinkt habe, oder die Hilfe zu LoadLibrary.

Ok, stimmt. Ist ja eine DLL und keine normale Datei. Aber wenn er weiß, wo sie liegt (Programmverzeichnis) warum gibt er dann nicht gleich den Pfad mit an?
Warum sollte man den Pfad für eine eigene DLL angeben, die im Programmverzeichnis liegt, wenn dort sowieso als erstes gesucht wird?

Dann würde es erst gar nicht zu solchen Fehlern kommen. Denn offensichtlich hat sich zu Windows 7/8 doch was geändert.
Was zu beweisen wäre. Der Fehler könnte jede Menge andere Ursachen haben, die nichts mit dem DLL-Suchverhalten zu tun haben. Solange Hans-Peter uns keine Details nennt, wie z.B. den konkreten Dateinamen und den Fehlercode (GetLastError) direkt nach LoadLibrary, ist alles nur Spekulation.
  Mit Zitat antworten Zitat
HPW

Registriert seit: 28. Feb 2003
160 Beiträge
 
Delphi 7 Professional
 
#7

AW: windows 10 loadlibrary error

  Alt 24. Nov 2015, 18:03
Hallo,

In meinem Fall war es die newlisp.dll mit der ich den Interpreter in meine Anwendung lade.
Also kaum eine KnownDll.
Windows 10 macht jedenfalls definitiv etwas anderes als die Versionen davor.

Jetzt nerven nur noch die ganzen Warnmeldungen beim Download und installieren wegen fehlender Signatur. Für kleine Software-Projekte sehr schwierig.

Grüsse,

Hans-Peter
Hans-Peter
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: windows 10 loadlibrary error

  Alt 24. Nov 2015, 20:24
Dann signiere deine Anwendungen doch einfach ...

Ein selbst erstelltes Zertifikat reicht in dem Fall wohl aus und der Installierende muss nur einmal dein Zertifikat als vertrauenswürdig abnicken, danach ist es wie bei einem gekauften Zertifikat.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#9

AW: windows 10 loadlibrary error

  Alt 24. Nov 2015, 21:27
Auch bei LoadLibrary kann man bei Fehlschlag GetLastError bemühen, um herauszufinden, warum das Laden der DLL nicht klappt.

[EDIT] Hoppla, SMO hat ja bereits darauf hingewiesen. Naja, doppelt hält besser [/EDIT]

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: windows 10 loadlibrary error

  Alt 24. Nov 2015, 21:51
Und wenn da kommt: "File not found"....
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 02:28 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