AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi VMWare Kein Zugriff auf fbclient.dll
Thema durchsuchen
Ansicht
Themen-Optionen

VMWare Kein Zugriff auf fbclient.dll

Ein Thema von dataspider · begonnen am 14. Feb 2025 · letzter Beitrag vom 14. Feb 2025
Antwort Antwort
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
Delphi.Narium

Registriert seit: 27. Nov 2017
2.543 Beiträge
 
Delphi 7 Professional
 
#2

AW: VMWare Kein Zugriff auf fbclient.dll

  Alt 14. Feb 2025, 10:12
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
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

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

AW: VMWare Kein Zugriff auf fbclient.dll

  Alt 14. Feb 2025, 10:35
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
Frank Reim
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:24 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 by Thomas Breitkreuz