In welchem Verzeichnis muss die Library sqlite3.dll abgelegt werden?
- gladio
- Beiträge: 215
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: In welchem Verzeichnis muss die Library sqlite3.dll abgelegt werden?
und müsste nicht auch das Programm wissen, wo es nach der DLL suchen soll... LibraryLocation ?
- af0815
- Lazarusforum e. V.
- Beiträge: 6117
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: In welchem Verzeichnis muss die Library sqlite3.dll abgelegt werden?
Nicht unbedingt, es wir im Systempfad für die Libs und dann im Verzeichnis der Executable automatisch gesucht.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 1346
- Registriert: Fr 10. Okt 2008, 23:54
- OS, Lazarus, FPC: Winuxarm (L 2.0.10 FPC 3.2)
- CPU-Target: 32/64Bit
Re: In welchem Verzeichnis muss die Library sqlite3.dll abgelegt werden?
Ich nutze ebenfalls die SQLite3.dll, jedoch die 64 Bit DLL Version benenne ich immer in "SQLite3-64.dll" um, damit kann ich beide DLL's im gleichen Verzeichnis halten.
Bei der TZConnection im BeforeConnect kann ich dann diesen Code ausführen:
Das "LoadLibTest()" macht nur ein dynlibs.LoadLibrary(), damit prüfe ich relativ einfach ob die EXE diese DLL irgendwie finden kann, dann brauche ich nicht selbst danach suchen.
Bei der TZConnection im BeforeConnect kann ich dann diesen Code ausführen:
Code: Alles auswählen
s := LowerCase(TZConnection(Sender).Protocol);
if TZConnection(Sender).LibraryLocation = '' then
begin // Nur suchen wenn leer
{$ifdef win64}
if Pos('sqlite', s) = 1 then
begin
if LoadLibTest('sqlite3-64.dll') then
Begin
TZConnection(Sender).LibraryLocation := 'sqlite3-64.dll';
If ErrMessagesDebugMode >= 1 Then
DoLog('Use LibraryLocation: ' + TZConnection(Sender).LibraryLocation);
End;
end
else
....
{$endif}
....