Inno Setup und OpenSSL



  • Hallo zusammen,

    ich habe ein Problem:
    Wir verwenden Inno Setup um Setups zu bauen. In Inno Setup kann man DLLs dynamisch laden und wenn man weiß, wie die Symbole heißen, entsprechend die Funktionen aus der DLL aufrufen.
    Bei uns hängt die DLL von OpenSSL ab (statisch gelinkt). In den letzten Monaten haben wir u.a. die OpenSSL Version geupdated. Da haben wir einen ziemlichen Versionssprung gemacht, den u.a. die Umbenennung der Bibliothek zu libcrypto beinhaltet.
    Seitdem bekommt man, wenn man das erstellte Setup ausführt die Fehlermeldung, dass die DLL nicht geladen werden kann.

    Um zu verifizieren, dass die DLL funktioniert habe ich Unit Tests, die die DLL mit LoadLibrary laden, die Symbole importieren und die entsprechenden Funktionen aufrufen. Die Tests können ohne weiteres auf die DLL zugreifen und liefern die erwarteten Ergebnisse.

    Wenn ich alle Abhängigkeiten zu OpenSSL entferne, kann ich die DLL auch mit Inno Setup laden und die Funktionen wie erwartet aufrufen.

    Hatte jemand mal ein ähnliches Problem und weiß Rat? Oder hat jemand so eine Idee woran das liegen könnte?



  • Prüfe mal mit dem Prozess Monitor (Sysinterrnals) ob die DLL überhaupt geladen wird.
    Ansonsten kannst Du auch Depends benutzen und einen Trace erzeugen und sehen was evtl passiert und welche Abhängigkeit evtl. nicht erfüllt wird.



  • Der Dependency Walker hat mich auf die Spur gebracht. Aus irgendeinem Grund hängt die DLL doch von libcrypto-3.dll ab, was eigentlich nicht sollte. Ich erstelle grade nochmal die statischen OpenSSL Bibliotheken neu, da scheint mir beim ersten erstellen was durcheinander gekommen zu sein.


Log in to reply