Delphi-PRAXiS
Seite 2 von 4     12 34      

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)

ChrisE 2. Aug 2011 12:58

AW: LoadLibrary unter Windows 7
 
Zitat:

Zitat von trashcandesign (Beitrag 1114660)
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...

Hmm, dass ist sehr merkwürdig. Es ist aber sicher kein schreibfehler`in dem DLL-Namen?
Kannst du mal folgendes Testen:
Delphi-Quellcode:
DLLName := PAnsiChar(ExtractFilePath(Application. ExeName)+'SCANNDYDll.dll';
if FileExists(DLLName) then
begin
  ShowMessage('Mich gibt es');
  DLLHandle := LoadLibary(DLLName);
end else
begin
  ShowMessage('Datei gibt es nicht');
  DLLHandle := 0;
end;
Gruß, Chris

Luckie 2. Aug 2011 13:04

AW: LoadLibrary unter Windows 7
 
Was für ein Windows, 32-Bit oder 64-Bit? Was für eine Anwendung, 32-Bit oder 64-Bit? Was für eine DLL, 32-Bit oder 64-Bit? Und: "If the function fails, the return value is NULL. To get extended error information, call GetLastError."


Delphi-Quellcode:
DLLName := PAnsiChar(ExtractFilePath(Application. ExeName)+'SCANNDYDll.dll';
if FileExists(DLLName) then
begin
  ShowMessage('Mich gibt es');
  DLLHandle := LoadLibary(DLLName);
end else
begin
  ShowMessage('Datei gibt es nicht');
  DLLHandle := 0;
end;
Warum nicht gleich richtig:
Delphi-Quellcode:
if LoadLibrary(...) = 0 then
begin
  ShowMessage(SysErrorMessage(GetLastError);
end
else
begin
  ...;
  ...;
end;
Dann weiß man auch WARUM es nicht funktioniert hat. Sonst fangen wir ja wieder an zu raten. ;)

ChrisE 2. Aug 2011 13:07

AW: LoadLibrary unter Windows 7
 
Zitat:

Zitat von Luckie (Beitrag 1114675)
Warum nicht gleich richtig:
Delphi-Quellcode:
if LoadLibrary(...) = 0 then
begin
  ShowMessage(SysErrorMessage(GetLastError);
end
else
begin
  ...;
  ...;
end;
Dann weiß man auch WARUM es nicht funktioniert hat. Sonst fangen wir ja wieder an zu raten. ;)

Weil wir diese aussage bereits hatten. GetLastError nach LoadLibrary liefert bereits 126 als Fehler zurück. Die Frage war wieso, den der TE versichert, dass die DLL da ist :-) - dachte ich ;-)

Gruß, Chris

trashcandesign 2. Aug 2011 13:09

AW: LoadLibrary unter Windows 7
 
Das ShowMessage zeigt mir den richtigen Pfad mit DLL an.
Also in dem Fall

c:\Programme (x86)\XXX\Scandydll.dll

trashcandesign 2. Aug 2011 13:11

AW: LoadLibrary unter Windows 7
 
64 Bit Windows,
32 Bit Anwendung
32 Bit DLL

trashcandesign 2. Aug 2011 13:12

AW: LoadLibrary unter Windows 7
 
Ich habe eine Zeile über den LoadLibrary ein FileExists und das gibt mir true zurück.
Deswegen bin ich mir ja eigentlich sicher, dass der Pfad richtig sein sollte ;)

ChrisE 2. Aug 2011 13:17

AW: LoadLibrary unter Windows 7
 
Zitat:

Zitat von trashcandesign (Beitrag 1114677)
c:\Programme (x86)\XXX\Scandydll.dll

Diesen Pfad gibt es nicht. Bist du dir siche, dass er so angezeigt wird? Und nicht als Program Files (x86)
Gruß, Chris

samso 2. Aug 2011 13:22

AW: LoadLibrary unter Windows 7
 
Ich hätte da mal eine andere Idee. Ich weiß aber nicht, ob so etwas technisch möglich ist. Angenommenen die ScandyDll.dll will eine weitere DLL laden und findet diese nicht, würde dann die Fehlernummer 126 durchgereicht werden?

Luckie 2. Aug 2011 13:22

AW: LoadLibrary unter Windows 7
 
Zitat:

C:\Dokumente und Einstellungen\Michael>net helpmsg 126

Das angegebene Modul wurde nicht gefunden.
Also wird da doch irgendwas nicht gefunden. Stimmt Groß- und Kleinschreibung vom DLL Namen?

trashcandesign 2. Aug 2011 13:24

AW: LoadLibrary unter Windows 7
 
Natürlich wird "C:\Program Files (x86)\" angezeigt, du hast recht ;)
Passiert, wenn man schnell dahin schreibt...

Ich habe jetzt mal genau deinen Code verwendet und ich bekomme auch die Meldung "Mich gibt es" und DLLHandle ist danach 0...


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.
Seite 2 von 4     12 34      

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