harlock999
Messages postés7Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention19 novembre 2006
-
16 nov. 2006 à 10:58
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 2010
-
22 nov. 2006 à 11:15
Bonjour,
J'ai effectué un ptit web browser simplifié avec des components activx. Mon problème est que j'aimerai avoir une application autonome sans dll dans le répertoire de l'appli ou dans system32, pour pouvoir le lancer a distance sans que les dll soient présentes sur la machine distante...
Mais j'ai l'impression que VC++ ne permet pas de merger les dll dans l'exe.
Si quelqu'un a une soluce je suis preneur merci bien :)
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 16 nov. 2006 à 12:38
ouhlala
disons que effectivement, ce n'est pas une solution standard de mettre les dlls dans l'exe.
Disons que ce n'est pas possible à la compilation, ce n'est pas la faute de VC++: la norme C et C++ ne le permet pas ( tout simplement parce que point de vue bas niveau, ce n'est pas possible )
cela dit, 2 ( au moins ) solutions s'offrent à toi :
Soit tu mets toutes tes dlls en ressource, et tu les recopie sur le disque au runtime si elles n'existent pas déjà. à la fin de l'executable tu rajoutes la taille de chaque dll, puis le nombre de dlls
Soit tu copie-colle le contenu de tes dlls à la fin de ton .exe, tu l'ouvre avec fopen au runtime, tu te places 4octets avant la fin, tu lis l'unsigned int : c'est le nombre de dlls.
à partir de là tu vas en arrière pour connaitre la taille de chaque dll, et tu les extraits si besoin est.
Maintenant, la grande question :
Pourquoi diable as tu besoin de faire ça ?
Si c'est pour l'exec à distance sur un windows, ben le repertoire system32, il l'aura aussi.
Si c'est pour le faire tourner sous unix, ça marchera forcément pas, les .exe y connait pas ^^
Tu as des dlls particulières dans le rep de ton programme ??
harlock999
Messages postés7Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention19 novembre 2006 17 nov. 2006 à 22:25
Merci pour la réponse,
En fait, ce petit browser allègé aura pour but d'être lancé à distance. Ce qui implique que meme si les dll sont dans le répertoire de l'exécutable, ou même dans system32 elles ne se chargeront pas sur le poste de l'utilisateur qui essaye de le lancer.
Pour apporter plus de précision, j'ai fait un projet windows form. Et je met un objet COM internet web control.
De plus j'ai découvert que le framework.Net doit obligatoirement être installé sur le poste utilisateur. (pour le déploiement c'est pas ça !).
Sinon excuse de mon ignorance ! Mais que veux-tu dire par mettre les dll en ressources ? (peut être dans le 'folder' Ressource de la solution--> add existing item... ???) Et comment rajouter à la fin de l'executable ? En gros as-ty plus de précisions a me fournir pour cette premire solution si possible sans trop abuser de ton temp ?
Arnaud16022
Messages postés1329Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention16 juin 20102 18 nov. 2006 à 11:41
ben dans les .exe windows, tu as la possibilité d'ajouter des icones, des trucs comme ça .. mais aussi n'importe quel type de fichier . Google est ton ami. Je re sur mon PC dans 2 jours, je pourrai t'envoyer un truc dans le genre.