Autor Téma: OpenSSL - více verzí v jednom projektu  (Přečteno 203 krát)

Offline Roman Č.

  • Nováček
  • *
  • Příspěvků: 11
  • Karma: 0
    • Verze Delphi: Delphi 7, XE2, 10.2 Tokyo
OpenSSL - více verzí v jednom projektu
« kdy: 08-11-2022, 15:24:12 »
Ahoj,
problém - aplikace v Delphi 7 (D7), používá Indy 9 a staré openSSL knihovny. Aplikace v D7 musí volat funkci v DLL (napsané ve vyšší verzi Delphi, řekněme tady konkrétně Delphi 11.2) používající Indy 10 a novější openSSL knihovny...
U EXE souboru jsou přímo vloženy starší openSSL knihovny (ve stejném adresáři).
V DLL je po inicializaci nastavena cesta k novým openSSL knihovnám přes:
Kód: Delphi [Vybrat]
  1. IdOpenSSLSetLibPath(ID10SLLDir);

Pokud se nejprve volá funkce z EXE používající Indy9 (která si natáhne svoje starší openSSL), nefungují pak funkce v DLL používající Indy 10, protože již nejsou schopny natáhnout svoje novější openSLL knihovny a naopak - pokud se nejprve volá funkce z DLL používající Indy10 (která si natáhne svoje novější openSSL), nefungují pak funkce v EXE používající Indy 9, protože si již nejsou schopny natáhnout svoje starší openSSL knihovny.

Dá se toto vůbec řešit? Třeba přejmenováním souborů openSSL knihoven a nasměrováním Indy na ty správné? Nebo před voláním funkce z DLL nejprve v EXE "nějak" uvolnit starší openSSL knihovny, pokud jsou již načtené, a tím donutit DLL, aby si načetlo svoje novější openSSL knihovny, a pak podobně po ukončení volání funkce z DLL naopak uvolnit ty novější, aby si pak EXE načetlo ty starší?
Bohužel ani pro jednu cestu se mi zatím nepodařilo najít konkrétní řešení, takže to takto nejde?

Cesta bohužel není upgradovat celý projekt v D7 na novější D11, to nikdo nezaplatí.
Díky za postřehy, nápady, docela už nevím, kde hledat...
Roman

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3183
  • Karma: 111
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:OpenSSL - více verzí v jednom projektu
« Odpověď #1 kdy: 09-11-2022, 00:02:07 »
No tak updatuj Indy9 na Indy10 v Delphi 7 ne? Nebo aspon updatuj D7 na D2007, to je skoro vzdy bezbolestne, pokud mas zdrojaky.
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3183
  • Karma: 111
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:OpenSSL - více verzí v jednom projektu
« Odpověď #2 kdy: 09-11-2022, 00:03:15 »
Excellent
Rated 1 time
nebo v D11 pouzij jiny handler pro Indy, treba SChannel
Embarcadero MVP - Czech republic

Offline Roman Č.

  • Nováček
  • *
  • Příspěvků: 11
  • Karma: 0
    • Verze Delphi: Delphi 7, XE2, 10.2 Tokyo
Re:OpenSSL - více verzí v jednom projektu
« Odpověď #3 kdy: 09-11-2022, 09:08:40 »
Díky Radkovi za tip ohledně SChannel - na mém počítači zdá se funguje perfektně, snad i na produkčních počítačích budou správné (podporující) OS.