Autor Beitrag
NOS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 2

Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 10 - Seattle PRO
BeitragVerfasst: So 04.11.18 19:20 
Hallo und guten Abend,

ich würde gern wissen ob es möglich ist die DLL's libeay32.dll und ssleay32.dll zu nutzen ohne dass diese in dem Verzeichnis des Programmes sind sondern in einem benutzerdefinierten Verzeichnis.
Ich habe bisher keine Option gefunden in dem TIdSSLIOHandlerSocketOpenSSL einen Pfad etc. anzugeben.

Da ich mehrere Programme habe die diese DLL's nutzen möchte ich diese zentral in einem Verzeichnis lagern um im Updatefall nur diese auszutauschen.

Ich freue mich auf Eure Antworten.

Grüße ins Forum,

Andreas


Moderiert von user profile iconNarses: Topic aus Internet / Netzwerk verschoben am So 04.11.2018 um 18:50
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1183
Erhaltene Danke: 96

Win7
DXE2 Prof, Lazarus
BeitragVerfasst: Mo 05.11.18 13:13 
Tante Google sagt zu define dll source folder genau das was du suchst. Das war gleich der erste Eintrag.
Ich verwende die Methode mit dem Manifest da ich für ettliche ActiveX Komponenten eh ein Manifest brauche.

Für Fälle in denen ich die Dll selber laden kann gebe ich den kompletten Pfad mit an da einige Dlls Teil eines Plugin Systems sind und aus einem ganz anderen Verzeichnis kommen.

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.

Für diesen Beitrag haben gedankt: NOS
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 05.11.18 18:22 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: NOS
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18718
Erhaltene Danke: 1624

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 05.11.18 19:19 
user profile iconFrühlingsrolle hat folgendes geschrieben Zum zitierten Posting springen:
In deinen bisherigen Programm-Verzeichnis gehören die Dateien auch nicht hin.
In den Systempfad, wie leider leider in der Doku geschrieben wird, gehören sie aber erst Recht nicht. Das war mal unter Windows 9x so, aber ist seit Windows NT/2000 nicht mehr so gedacht und widerspricht den Systemrichtlinien...
Was, wenn zwei Programme OpenSSL in verschiedenen Versionen nutzen? Man kann ja nicht beide DLLs an die gleiche Stelle kopieren.

Deshalb regelt das normalerweise das MSI-Installationsprogramm und registriert die DLLs bei Windows, das dann im SxS Repository die DLLs in den verschiedenen Versionen vorhält und je nach Programm die passende Version bereitstellt.

Für portable Software ist das Verzeichnis, in dem die Anwendung liegt, die einfachste Variante.

Für diesen Beitrag haben gedankt: NOS
NOS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 2

Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 10 - Seattle PRO
BeitragVerfasst: Mo 05.11.18 20:05 
Ich bin grad auf das hier in der idSSLOpenSSLHeaders gestossen ... vielleicht funktioniert es ja so

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure IdOpenSSLSetLibPath(const APath: String);
begin
  if APath <> '' then begin
    GIdOpenSSLPath := IndyIncludeTrailingPathDelimiter(APath);
  end else begin
    GIdOpenSSLPath := '';
  end;
end;
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 05.11.18 20:56 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: NOS
NOS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 183
Erhaltene Danke: 2

Win XP, Win Vista Ultimate, Win 7 Ultimate
Delphi 10 - Seattle PRO
BeitragVerfasst: Sa 17.11.18 22:29 
Ich möchte offiziell feststellen, dass es genauso funktioniert

In idSSLOpenSSLHeaders die Funktion idOpenSSLSetLibPath nutzen und die SSL Dateien werden genau aus dem Verzeichnis genommen welches dort gesetzt wurde :-)

Lieben Dank an alle die sich beteiligt haben und ein schönes WE allerseits