Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi VMWare Kein Zugriff auf fbclient.dll (https://www.delphipraxis.net/216696-vmware-kein-zugriff-auf-fbclient-dll.html)

dataspider 14. Feb 2025 09:34

VMWare Kein Zugriff auf fbclient.dll
 
Ich habe im Firmennetz jetzt eine Entwicklungsrechner auf Basis VMWare.
Ich habe dort eine fast identische Umgebung wie auf dem lokalen Notebook.

Aber beim Laden der fbclient.dll gibt es Probleme.

Ich habe zum Testen folgende Routine:
Delphi-Quellcode:
procedure TForm1.BtnLoadDLLClick(Sender: TObject);
Const
  FBFileName = 'c:\Temp\fbclient.dll';
  FBFileName2 = 'c:\Program Files\Firebird\Firebird_3_0\WOW64\fbclient.dll';
  FBFileName3 = 'e:\FBDll\fbclient.dll';
  FBFileName4 = 'c:\Program Files\Firebird\fbclient.dll';
  FBFileName5 = 'c:\Windows\SysWOW64\fbclient.dll';
  dxFileName = 'dx.language.dll';

  procedure LoadLib(const AFileName: string);
  Var
    LHandle: NativeUInt;
    LError: Cardinal;
  begin
    assert(FileExists(AFileName));
    LHandle := LoadLibraryEx(PChar(AFileName), 0, LOAD_WITH_ALTERED_SEARCH_PATH);
    try
      LError := GetLastError;
      Log.Lines.Add(Format('DLL: %s Handle: %d Error: %d', [AFileName, LHandle, LError]));
    finally
      if (LHandle > HINSTANCE_ERROR) then
        FreeLibrary(LHandle);
    end;
  end;

begin
  Log.Lines.Clear;
  LoadLib(TPath.GetLibraryPath + 'fbclient.dll');
  LoadLib(FBFileName2);
  LoadLib(dxFileName);
  LoadLib(FBFileName);
  LoadLib(FBFileName3);
  LoadLib(FBFileName4);
  LoadLib(FBFileName5);
end;
Als Ergebnis erhalte ich:
Code:
DLL: E:\work\Spielen\Win32\Debug\fbclient.dll Handle: 0 Error: 126
DLL: c:\Program Files\Firebird\Firebird_3_0\WOW64\fbclient.dll Handle: 1411383296 Error: 0
DLL: dx.language.dll Handle: 49348608 Error: 0
DLL: c:\Temp\fbclient.dll Handle: 0 Error: 126
DLL: e:\FBDll\fbclient.dll Handle: 0 Error: 126
DLL: c:\Program Files\Firebird\fbclient.dll Handle: 0 Error: 126
DLL: c:\Windows\SysWOW64\fbclient.dll Handle: 0 Error: 126
Wie man sehen kann, wird nur die DLL c:\Program Files\Firebird\Firebird_3_0\WOW64\fbclient.dll geladen.
Alle anderen findet er nicht (Code 126).
Die fbclient.dll Dateien in den anderen Verzeichnissen sind aber identisch.
Eigene DLL's werden auch geladen.
Sehr interessant folgendes:
Lege ich ein TIBCConnection auf das Formular, connecte zur Entwurfszeit und starte aus der IDE, dann werden alle fbclient.dll geladen.
[EDIT]
OK, er lädt sicher die dll nicht, wenn schon eine geladen ist...[/EDIT]

Hat jemand eine Idee, was hier die Ursache ist und wie man das beheben kann?

Frank

Delphi.Narium 14. Feb 2025 10:12

AW: VMWare Kein Zugriff auf fbclient.dll
 
Die fbclient.dll hat Abhängigkeiten zu weiteren DLLs. Eventuell liegen nur die im Verzeichnis c:\Program Files\Firebird\Firebird_3_0\WOW64\ und werden daher gefunden, während sie für die anderen DLLs nicht auffindbar sind, da sie nicht im Suchpfad liegen.

Ist nur 'ne Vermutung.

Abhängig von der FireBird-Version können die ?? variieren.
msvcr??.dll - Microsoft Visual C++ Runtime Library
msvcp??.dll - Microsoft Visual C++ Runtime Library (C++ spezifisch)

kernel32.dll
advapi32.dll
shell32.dll
ws2_32.dll
mpr.dll
user32.dll
ole32.dll

dataspider 14. Feb 2025 10:35

AW: VMWare Kein Zugriff auf fbclient.dll
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1546183)
Die fbclient.dll hat Abhängigkeiten zu weiteren DLLs. Eventuell liegen nur die im Verzeichnis c:\Program Files\Firebird\Firebird_3_0\WOW64\ und werden daher gefunden, während sie für die anderen DLLs nicht auffindbar sind, da sie nicht im Suchpfad liegen.

Ist nur 'ne Vermutung.

Abhängig von der FireBird-Version können die ?? variieren.
msvcr??.dll - Microsoft Visual C++ Runtime Library
msvcp??.dll - Microsoft Visual C++ Runtime Library (C++ spezifisch)
...

Es fehlten msvcr100.dll und msvcp100.dll unter c:\Windows\SysWOW64.

Du kannst dir nicht vorstellen, wie dankbar ich dir bin!

Frank Reim


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz