Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   LoadLibrary unter Windows 7 (https://www.delphipraxis.net/162019-loadlibrary-unter-windows-7-a.html)

trashcandesign 2. Aug 2011 11:04

Delphi-Version: 5

LoadLibrary unter Windows 7
 
Moin,

ich muss eine DLL Datei einbinden und mach das über LoadLibrary.
Unter Win XP funktioniert auch alles super, aber unter Windows 7 liefer LoadLibrary nur eine 0 zurück,
ohne Fehlermeldung o.ä.

Um Pfad Schwierigkeiten zu vermeiden hab ich die DLL mal direkt auf C gelegt, leider ohne Erfolg.

Gibt es da generelle Schwierigkeiten mit DLLs laden und Windows 7?

Edit: Delphi Version ist nicht wie oben angegeben Delphi 5, sondern 2006

p80286 2. Aug 2011 12:03

AW: LoadLibrary unter Windows 7
 
Soweit ich weiß ist c:\ für W7-Anwendungsprogramme eine NoGoAerea.
Zum Testen solltest Du vielleicht die Echse und die DLL einmal in ein Verzeichnis packen, auf das Du als Benutzer auf jeden Fall Zugriff hast. (Eigene Dateien ?)

Gruß
K-H

(jetzt sind wir bei w7 und die plattenverwaltung ist immer noch bei DOS3.2)

jaenicke 2. Aug 2011 12:07

AW: LoadLibrary unter Windows 7
 
Hast du vielleicht vergessen den kompletten Pfad anzugeben? Aus Sicherheitsgründen sucht Windows standardmäßig nicht mehr im aktuellen Arbeitsverzeichnis.

Zudem werden Zugriffe auf diverse Verzeichnisse umgeleitet, wenn du kein Manifest benutzt.

samso 2. Aug 2011 12:28

AW: LoadLibrary unter Windows 7
 
Vielleicht solltest Du Dir mit "RaiseLastOsError" den Fehlertext holen.
Zitat:

If the function fails, the return value is NULL. To get extended error information, call GetLastError.
Falls die DLL schlicht nicht gefunden wird, könnte es bei W7-64 daran liegen, dass Du sie manuell (mit einer 64-Bit-Anwendung) in das Verzeichnis "System32" kopiert hast und nicht in das Verzeichnis "SysWow64".

trashcandesign 2. Aug 2011 12:37

AW: LoadLibrary unter Windows 7
 
Eigentlich liegt die DLL bei mir direkt im Programmverzeichnis.
Auf die DLL greife ich mit LoadLibrary(PAnsiChar(ExtractFilePath(Application. ExeName)+'SCANNDYDll.dll')) zu, somit sollte also der richtige Pfad angegeben sein.

Das mit dem SysWow64 versuche ich gleich mal.

GetLastError liefert 126 zurück.
Soweit ich gelesen habe ist 126 = Das angegebene Modul wurde nicht gefunden.

ChrisE 2. Aug 2011 12:38

AW: LoadLibrary unter Windows 7
 
Zitat:

Zitat von jaenicke (Beitrag 1114642)
.... Aus Sicherheitsgründen sucht Windows standardmäßig nicht mehr im aktuellen Arbeitsverzeichnis......

ich dachte nur nicht mehr zuerst, aber schlussendlich immer noch? :gruebel:

Gruß, Chris

trashcandesign 2. Aug 2011 12:51

AW: LoadLibrary unter Windows 7
 
Auch wenn ich sie ins SysWOW64 Verzeichnis lege ändert sich nichts.
Weder, wenn ich sie direkt aufrufen möchte, noch wenn ich gar keinen Pfad angebe...

ensaron 2. Aug 2011 12:52

AW: LoadLibrary unter Windows 7
 
Setz doch mal nen Haltepunkt und schau dir an, was

Delphi-Quellcode:
PAnsiChar(ExtractFilePath(Application. ExeName)+'SCANNDYDll.dll')
als Ergebnis liefert.

trashcandesign 2. Aug 2011 12:54

AW: LoadLibrary unter Windows 7
 
Gibts dafür noch ne andere Möglichkeit?

Ich entwickle hier unter Windows XP und da funktioniert alles einwandfrei ;)
Unter Win7 kann ich nur ausführen, nicht debuggen...

Klaus01 2. Aug 2011 12:57

AW: LoadLibrary unter Windows 7
 
Hallo,

Du kannst Dir ja den Pfad anzeigen (showMessage)lassen oder auch in eine Logdatei schreiben lasen, wenn LoadLibrary mit 0 endet.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:54 Uhr.
Seite 1 von 4  1 23     Letzte »    

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