DLL bei Programmstart aus Programm herrauskopieren

Executer

Mitglied
So ich bin es schon wieder :)

Weiß jemand wie man eine DLL in ein Programm reincompiled, und dann wenn man das Programm ausführt, sollte diese DLL aus dem Programm rauskopiert werden. Ich möchte dies bewerkstellen, ohne ein Installshield zu benutzen oder so. Ich hoffe ihr versteht was ich mein :)

thx Executer
 
Falls die Dll von dir ist, dann solltest du vielleicht darüber nachdenken,
aus deiner Dll eine statische Bibliothek (.lib) zu machen, dein Ansatz
widerspricht jedenfalls eigentlich der Philosophie einer Dll.

Oder wie wäre es mit einem selbstextrahierenden Zip-Archiv ?

BadMourning
 
naja für nen Hook z.B braucht man soweit ich weiß ne Dll...
Und ein selbstextrahierendes Zip-Archiv möchte ich nicht.

//Edit: sorry hab vergessen zu sagen dass die Dll von mir ist :)
 
Zuletzt bearbeitet:
Was spricht dagegen,die DLL von Haus aus neben deiner .exe liegen zu lassen?

Ansonsten würde ich in Richtung FindResource, LoadResource, LockResource schielen (ganz stark). Einfach eine binäre Ressource erstellen mit deiner Datei, und dir dann mit den Befehlen oben einen Pointer drauf holen. Das ganze rausschreiben und fettich.
 
Ich bins schon wieder. Ich habe jetzt die Dll hinzugefügt und sie IDR_DLL genannt und den Resourcentyp DLL.

mit dem Code
Code:
HRSRC temp;
temp =FindResource(
		NULL, // module handle
		"IDR_DLL",  // pointer to resource name
		"DLL"  // pointer to resource type
);
char ch[20];
int i = GetLastError();
itoa(i,ch,10);
bekomme ich den Fehler 1814 welcher besagt, dass der Resourcenname nicht vorhanden sei...
Kann mir jemand einen Tip geben, wie ich es hinbekomme?

Danke
 
Hi ...

Du musst den Ressourcen-Namen mit dem Macro MAKEINTRESOURCE umwandeln. Schau dazu mal in die MSDN. Da findest du auch noch Informationen zu Resourcen-Typen, das kann dir evtl auch nützlich sein...

Gruß
Shai
 
OK vielen Dank für die schnelle Hilfe.

Für alle die zu faul für die MSDN sind ;) :

Code:
WORD wInteger=IDR_DLL;//name of resource
char* name;
name=MAKEINTRESOURCE(
   wInteger  // integer to convert
);



HRSRC temp;
temp =FindResource(
		NULL, // module handle
		name,  // pointer to resource name
		"DLL"  // pointer to resource type
);

Nacht allerseits
 
Sorry die Frage ist sicher nciht die schlauste aber ich komme irgendwie nciht drauf, wie ich jetzt die Datei speichern kann...

D.h. ich hab das erste Byte durch LockResource erhalten, aber jetzt komm ich nicht mehr weiter :(
Kann mir bitte nochmal jemand helfen?
 

Neue Beiträge

Zurück