exe/dll packen
Verfasst: 04.05.2012, 12:36
Ich suche nach einer Möglichkeit, benötigte dll's in eine exe Datei zu packen. Hauptgrund ist in etwa folgender:
Jeder der schonmal mit OpenSceneGraph gearbeitet hat, weiß, dass dazu ungefähr 50 dlls gehören. Will man sein Programm weitergeben, muss man die alle mitkopieren. Natürlich benutzt man nicht immer alle, könnte also welche weglassen (wobei das Handarbeit ist) und, was noch viel wichtiger ist, man benutzt ja längst nicht alle Funktionen dieser dlls.
Also dachte ich mir, es müsste doch theoretisch möglich sein, nur die tatsächlich benutzen Teile einer dll zu extrahieren. Wo man gerade schon dabei ist, könnte man diese Teile dann auch gleich mit in die exe packen, so dass man danach statt "exe+50*dll" nur noch eine exe Datei hat, in der wirklich nur der Code steht, der auch irgendwann einmal ausgeführt wird.
So ganz trivial ist das Problem vermutlich nicht (Funktionen in dlls können ja weitere Funktionen aufrufen und so), aber vielleicht gibt es dafür ja doch irgendwelche Tools?
Eine kurze Suche hat mich zum Beispiel auf UPX gebracht, aber das ist ja nicht wirklich das, was ich suche. Das Packen von exe-Dateien hat ja auch eine Reihe von Nachteilen, ich hätte eigentlich gerne ein normales Programm (ohne unpack-Teil), wo aber eben Teile von dlls mit drin stehen. Also so gesehen eine Art nachträgliches, statisches Linken.
Jeder der schonmal mit OpenSceneGraph gearbeitet hat, weiß, dass dazu ungefähr 50 dlls gehören. Will man sein Programm weitergeben, muss man die alle mitkopieren. Natürlich benutzt man nicht immer alle, könnte also welche weglassen (wobei das Handarbeit ist) und, was noch viel wichtiger ist, man benutzt ja längst nicht alle Funktionen dieser dlls.
Also dachte ich mir, es müsste doch theoretisch möglich sein, nur die tatsächlich benutzen Teile einer dll zu extrahieren. Wo man gerade schon dabei ist, könnte man diese Teile dann auch gleich mit in die exe packen, so dass man danach statt "exe+50*dll" nur noch eine exe Datei hat, in der wirklich nur der Code steht, der auch irgendwann einmal ausgeführt wird.
So ganz trivial ist das Problem vermutlich nicht (Funktionen in dlls können ja weitere Funktionen aufrufen und so), aber vielleicht gibt es dafür ja doch irgendwelche Tools?
Eine kurze Suche hat mich zum Beispiel auf UPX gebracht, aber das ist ja nicht wirklich das, was ich suche. Das Packen von exe-Dateien hat ja auch eine Reihe von Nachteilen, ich hätte eigentlich gerne ein normales Programm (ohne unpack-Teil), wo aber eben Teile von dlls mit drin stehen. Also so gesehen eine Art nachträgliches, statisches Linken.