Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.356 Beiträge
 
Delphi 11 Alexandria
 
#1

VMWare Kein Zugriff auf fbclient.dll

  Alt 14. Feb 2025, 09:34
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
Frank Reim

Geändert von dataspider (14. Feb 2025 um 09:42 Uhr)
  Mit Zitat antworten Zitat