Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DLL in Exe packen?! (https://www.delphipraxis.net/109265-dll-exe-packen.html)

DelphiManiac 27. Feb 2008 09:11


DLL in Exe packen?!
 
Hallo,

ich habe eine Frage bezüglich DLL und EXE-Dateien.

In meiner Anwendung binde ich statisch eine DLL ein. Ist es möglich diese DLL mit in die Exe zukompilieren (als Ressource?!)
Wenn ja wie geht das?

Ich weiß, dass das einwenig dem Wesen einer Dynamic Link Library widerspricht, aber wenn der Kunde nur eine ausführbare Datei haben will...

Danke schonmal

Bernhard Geyer 27. Feb 2008 09:20

Re: DLL in Exe packen?!
 
Zitat:

Zitat von DelphiManiac
In meiner Anwendung binde ich statisch eine DLL ein. Ist es möglich diese DLL mit in die Exe zukompilieren (als Ressource?!)
Wenn ja wie geht das?

Nein. geht nicht. Der Windows-Loader benötigt diese DLL schon bevor irgendeine Zeile Quellcode in deiner Exe ausgeführt wird.

Zitat:

Zitat von DelphiManiac
Ich weiß, dass das einwenig dem Wesen einer Dynamic Link Library widerspricht, aber wenn der Kunde nur eine ausführbare Datei haben will...

Dann entweder dynamisch die DLL einbinden so das vor der verwendung die DLL in den Temporär-Ordner expandiert werden kann oder einen Single-File-Installer bereitstellen (Evtl. Preloader der Exe und DLL als Ressource behinhaltet). Aber freu dich auf Meldungen von Virenscannern die evtl. so einen Ansatz unterbinden.

ErazerZ 27. Feb 2008 09:25

Re: DLL in Exe packen?!
 
Selbstverständlich geht das. Du musst nur die DLL aus dem Speicher laden. Schaue dir Joachim Bauch's Artikel an. Übrigens, Aphex hat das bereits in Delphi übersetzt und die Unit nennt sich "DLLUnit" bzw. "DllMemoryLoader".

--ErazerZ.

Bernhard Geyer 27. Feb 2008 09:36

Re: DLL in Exe packen?!
 
Zitat:

Zitat von ErazerZ
Selbstverständlich geht das. Du musst nur die DLL aus dem Speicher laden. Schaue dir Joachim Bauch's Artikel an. Übrigens, Aphex hat das bereits in Delphi übersetzt und die Unit nennt sich "DLLUnit" bzw. "DllMemoryLoader".

Interessanter Ansatz. Ich denke aber das dies nur mit dynamisch geladenen DLL's geht.
Und was sagt der DEP von XP/Vista dazu? Ein Test wäre es wert ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz