Seite 1 von 1

Fremde .dll mitliefern - wie?

Verfasst: 09.01.2022 17:26
von Delle
Hallo,

angenommen man ist auf eine fremde .dll angewiesen - wie liefert man diese dem User mit?

Es handelt sich beim Programm um eine einzige .exe (portable) und ein typischer Installer ist nicht vorhanden/nötig.

Die DLL includen und immer temporär während Nutzung des Programm "neben" die .exe zu legen (und danach wieder zu löschen), ist ja auch nicht die saubere Art.

Dem User einfach "heimlich" in den System-Ordner installieren auch nicht.

Welche Möglichkeit gibt's noch? Ins "Home"-Verzeichnis vielleicht? Wo sucht das Programm automatisch nach der DLL?

Thaaaaaaaaaaaaaaaaaaaaanx! ;)

Re: Fremde .dll mitliefern - wie?

Verfasst: 09.01.2022 17:53
von mk-soft
Ich weiss nicht ob das auch mit x64 funktioniert:

Open DLL from memory: Link: https://www.purebasic.fr/english/viewtopic.php?t=42118

Re: Fremde .dll mitliefern - wie?

Verfasst: 11.01.2022 13:44
von TroaX

Code: Alles auswählen

Ergebnis$ = GetCurrentDirectory()
Alle Datei-Zugriffe erfolgen relativ zu diesem Verzeichnis, wenn kein absoluter Pfad angegeben wird. Zum Ändern des aktuellen Verzeichnisses verwenden Sie SetCurrentDirectory().
Also wenn es dir nur darum geht, das dein Programm die DLL sicher findet, dann sollte das generell kein größeres Problem sein. Heimlich solltest du halt nichts machen. Das ist weder eine seriöse noch eine saubere Methode. Lege sie zusammen mit der .exe in ein Archiv und gut ist. Denn wenn der Nutzer das Programm löscht, bleibt die DLL trotzdem in seinem Versteck. Das muss nun wirklich nicht sein. Ansonsten wie mksoft durch seinen Link schauen, ob die DLL in den RAM und aus diesem geladen werden kann.

Re: Fremde .dll mitliefern - wie?

Verfasst: 11.01.2022 20:47
von STARGÅTE
Geht es hier wirklich um eine "fremde" DLL? Die darf doch gar nicht einfach so weiter verbreitet werden schon gar nicht "versteckt", außer die Lizenz lässt es zu. Ich weiß noch, wie Audacity immer den Benutzer aufgefordert hat sich die lame_enc.dll (oder wie sie hieß) selbst "zu besorgen", wenn man n MP3 erstellen möchte.

Ansonsten, wenn du wirklich nur eine Single-Exe verteilen willst, würde ich die DLL aus der Exe ins Temp-Verzeichnis kopieren lassen, aber auch nur, wenn die DLL nicht gefunden wird. Denn viele DLLs sind ja schon auf dem System vorhanden und werden alleine gefunden.

Re: Fremde .dll mitliefern - wie?

Verfasst: 12.01.2022 18:22
von DrShrek
"Fremde DLL" schon die Umschreibung scheint ja hier "nicht ganz saubere" Wege gehen zu wollen.
Es ist entsprechend der Lizense der DLL zu verfahren.