Entwickler-Ecke

Dateizugriff - DLL in einer EXE...


TheUnknown - Di 22.04.03 11:42
Titel: DLL in einer EXE...
Moin!

Ich nutze Funktionen einer DLL - Klappt alles wunderbar... Jetzt möchte ich es so machen, dass die DLL in der EXE einkompiliert wird, damit sie auch immer vorhanden sein wird.

Wie muss ich es machen, dass die EXE dann nicht direkt nach einer DLL im %PATH% sucht, sondern, dass sie weiss, dass die DLL als Resource in der EXE liegt und auch auch auf die Ressourcen-DLL zugreift - ohne dass ich die DLL erst entpacken muss...

Ich habe schon alles versucht, aber ich bekomms einfach nicht hin...


mirage228 - Di 22.04.03 11:59

Leg die Funktionen aus der DLL einfach ins Hauptprogramm (falls du den Source der DLL hast) und kompiliere sie einfach mit ein.

mfG
mirage228


Motzi - Di 22.04.03 12:06
Titel: Re: DLL in einer EXE...
TheUnknown hat folgendes geschrieben:
Moin!

Ich nutze Funktionen einer DLL - Klappt alles wunderbar... Jetzt möchte ich es so machen, dass die DLL in der EXE einkompiliert wird, damit sie auch immer vorhanden sein wird.

Wie muss ich es machen, dass die EXE dann nicht direkt nach einer DLL im %PATH% sucht, sondern, dass sie weiss, dass die DLL als Resource in der EXE liegt und auch auch auf die Ressourcen-DLL zugreift - ohne dass ich die DLL erst entpacken muss...

Ich habe schon alles versucht, aber ich bekomms einfach nicht hin...

Das wird so nicht gehen. Das Problem ist ähnlich wie das eine Exe die nur als Resource vorhanden ist auszuführen ohne diese auf die Festplatte zu speichern. Es ist möglicherweise sogar machbar, allerdings gibt es keine dokumentierte Möglichkeit und ich hab auch noch nie irgendwo was davon gehört/gelesen, dass es jemand gemacht/geschafft hätte.

Fazit: entweder mach es so wie mirage228 geschrieben hat (sofern das möglich ist) oder aber du musst damit leben die Dll auf die Festplatte zu spielen (und wenn es nur für die Laufzeit deines progs ist).


toms - Di 22.04.03 17:38

Zitat:
und ich hab auch noch nie irgendwo was davon gehört/gelesen, dass es jemand gemacht/geschafft hätte


Hab schon mal was über ein Tool (od. sogar Delphi Komponente) gelesen,
welche das kann.
Hab leider den Link grad nicht zur Hand.


Motzi - Di 22.04.03 17:40

toms hat folgendes geschrieben:
Zitat:
und ich hab auch noch nie irgendwo was davon gehört/gelesen, dass es jemand gemacht/geschafft hätte


Hab schon mal was über ein Tool (od. sogar Delphi Komponente) gelesen,
welche das kann.
Hab leider den Link grad nicht zur Hand.

Was? Eine Dll-Resource verwenden oder eine Exe-Resource starten? Würd mich interessieren..!


MSCH - Di 22.04.03 17:43

imho geht das nicht. Eine Exe-Datei hat einen bestimmten Aufbau, da einfach mal codes aus Dlls reinzuschieben dürfte was für freaks sein, wenn überhaupt geht, man müsste den gesamten Fileaufbau der Exe neu umbasteln. *brrr*
Das einzige was geht, dass eine EXE Datei auch funktionen exportiert, so dass du diese auch linken kannst (was imho horizontaler Schwachsinn ist, sofern exe und Funktion in einer Datei stehen).

Aber ich versteh das Prob nicht, warum sowas?
grez.
msch


toms - Di 22.04.03 22:58

Weiss leider nicht mehr, wo ich das "Teil" gesehen habe aber
schaut euch mal thinstall an:

http://thinstall.com/help/index.html?dlllinking.htm


wulfskin - Di 22.04.03 23:27

Assarbads DLL-Tutorial hat folgendes geschrieben:
DLLs Huckepack – DLLs als binäre Ressource
Ich denke, dass ist genau das was du suchst!
Zu finden auf [url=www.assarbad.org]Assarbad's Homepage[/url]!

Gruß wulfskin!


TheUnknown - Mi 23.04.03 08:47

WOW! Welch' Resonanz!

Durch einen Link, den jemand von Euch gepostet hat, fand ich das, was ich in etwa suchte... Ich hab's mir zurecht gemodelt und dann so gestrickt, dass die DLL ist TempDir gelegt wird, wenn sie nicht schon dort lagert...

Der Sinn dahinter war, dass man die erforderliche DLL wirklich IMMER vorliegen hat - ohne Installation und so weiter, oder, wenn die Datei auf CD liegt, und die DLL vergessen wurde zu brennen...

DANKESCHÖN! Ich breche an dieser Stelle mal eine Lanze für dieses Forum - DANKE Jungs und Mädels (sofern es die - hoffentlich - hier gibt!)...


Delete - Mi 23.04.03 10:56

Source dazu findest du auch in meinem Crypter. Die Verschlüsselungs-DLL ist auch als Ressource in die Exe kompiliert.

@Motz: Das mit der Exe geht nur unter 2000 und höher. Also aus der Ressource direkt satrten ohne sie voprher auf die Platte zuschreiben. Ich hatte sogar mal Code dafür. Wenn du Nico kennst, schreib ihn mal an. Ode rich frage ihn mal, wenn er das nächste mal im ICQ ist, wenn ich daran denke.


Motzi - Mi 23.04.03 12:22

Luckie hat folgendes geschrieben:
@Motz: Das mit der Exe geht nur unter 2000 und höher. Also aus der Ressource direkt satrten ohne sie voprher auf die Platte zuschreiben.

Also doch.. dass es eine irgendeine Möglichkeit gibt hab ich mir eh gedacht, aber sicher keine einfache..!
Zitat:
Ich hatte sogar mal Code dafür. Wenn du Nico kennst, schreib ihn mal an. Ode rich frage ihn mal, wenn er das nächste mal im ICQ ist, wenn ich daran denke.

Klar kenn ich unsren Nico! ;) Werd ihn bei gelegenheit mal darauf ansprechen..