DLL

Résolu
THYNOORD Messages postés 5 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 juillet 2008 - 23 mars 2008 à 10:22
THYNOORD Messages postés 5 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 juillet 2008 - 1 avril 2008 à 17:55
Je suis en train de créer un installateur en Delphi 5 ou Delphi 6 (j'utilise les 2). J'ai créé un utilitaire pour créer automatiquement mes ressources. J'ai maintenant besoin de créer une DLL contenant les ressources à installer. Cela est super mais me demande un nombre de manip trop important! Je souhaite donc créer un petit utilitaire qui crée et compile la DLL... J'ai beau réfléchir, je ne trouve pas le moyen de créer et compiler une DLL de ressource par programme ! Existe-t-il un moyen (ligne de commande / commande DOS ?) pour forcer Delphi à le faire ?

J'ai vu un grand nombre de programmeurs super pointus sur ce site ! Il doit certainement y en avoir plein pour qui cette manip relève du B-A-BA !

Merci de m'aider !

THYNOORD
A voir également:

9 réponses

THYNOORD Messages postés 5 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 juillet 2008
1 avril 2008 à 17:55
Désolé, j'ai un peu délaissé ce forum pdt quelques jours... N'ayant pas trouvé de réponse super claire (ou super précise) pour mon niveau de programmation (), j'ai décidé de faire appel à la méthode empirique et... une fois de plus, ça a marché ! Donc pour tous ceux qui se poseraient la même question, la démarche est la suivante :
> je crée un fichier de ressources (MaRessource.RES)
> je crée un projet DLL intégrant ce fichier de ressource
> je compile la DLL avec la commande :
      « DCC32 monexemple.dll  -b»

en 't is alles, and that's all, et c'est tout !

En fait c'est tout bête, maintenant, il suffit que j'écrive mon installateur et que je lui associe une dll (que j'appellerai "Installation.dll" -par exemple-) et le même programme pourra installer toutes mes distributions sans être modifié d'une seule ligne !...

Merci à tous pour votre participation !

THYNOORD
3
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
23 mars 2008 à 12:39
DLL redecule fai juste un arhcive de vos resources dans un fichier mais ça serai plus pro si tu les mets dans ton exe, et pour ne pas cassé la tête il y a des composant gratuit et d'autre même opensource pour fair ça éssay le site torry's, j'ai déja fais ça avant un installeur presque complet gestion d'alias (ajour, mise ajour si existe, DBE engine...).
la vie n'est pas aussi difficile qu'ont le pense (bon! par fois :D).
bon courage.
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
24 mars 2008 à 11:24
Salut,

"DLL redecule fai juste un arhcive de vos resources dans un fichier mais
ça serai plus pro si tu les mets dans ton exe"

Juste pour information une DLL est un EXE qui se charge a une adresse mémoire différente ... que les ressources soient dans une DLL ou un EXE c'est du pareil au même (kif kif)

Pour compiler une ressource en ligne de commande ... : Brcc32.exe
Pour compiler un EXE ou une DLL en ligne de commande ... : Dcc32.exe

les deux se trouvent dans le répertoire Bin de ton Delphi

Sinon il existe des outils très performant et gratuits de surcroit :
http://logiciel.codes-sources.com/r.aspx?r=installeur

 
@+
Cirec

<hr siz="" />
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mars 2008 à 15:30
ouh la cirec, tu fais dans le raccouci qlq peu excessif.

Une DLL est un binaire exécutable mais certainement pas un exe, le système ne créera jamais un espace processus pour une DLL.
Le point d'entrée d'une DLL (inséré directement pas les linkers modernes) est un code d'attachement à un processus existant alors que celui d'un exe est le début du code du thread primire du processus. Une DLL doit aussi fournir un callback traitant au minimum DLL_PROCESS_ATTACH.

Lire Richter pour la suite.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
THYNOORD Messages postés 5 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 5 juillet 2008
24 mars 2008 à 18:57
Je découvre ces messages intéressants ! Un premier grand merci à tous !

En cherchant ailleurs sur le net j'ai découvert que DCC32.exe avait une liste d'options impressionnante ! Dois-je, après avoir créé l'ossature de la DLL via un fichier texte par exemple depuis mon programme, simplement taper -b DCC32 monexemple.dll ? ou est-ce plus compliqué que cela ?

Merci à qui pourra éclairer ma lanterne un tout petit peu plus !

SLT, à +
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 mars 2008 à 19:48
Tu n'y a pas accès en Delphi, c'est une chose mais que Delphi le mette est certain.
Il en va de même en C si on utilise le CRT, pas d'obligation de fournir ce callback mais il est inséré (version minimale) dans tous les cas par le compilo. Si sans CRT alors comme d'hab on est responsable de tout.

ciao...
BruNews, MVP VC++
0
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
25 mars 2008 à 15:53
Sans DLL c plus PRO
0
ELCouz Messages postés 135 Date d'inscription jeudi 22 mars 2007 Statut Membre Dernière intervention 25 juillet 2008
25 mars 2008 à 20:50
>>Sans DLL c plus PRO

Encore la, c'est une question de gout , organisation et optimisation.

Vaut mieu appeler dynamiquement des dlls que de se retrouver avec un gros EXE principale de 100 mb !

Laurent
0
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
26 mars 2008 à 11:53
exe installeur en 100 M  ou un pecket de 100 M c la même chose , mais la diffirence est que t'as q'un seul fichier a utiliser c pour ça que c plus pro, alors pour l'optimisation puisque c moi que 4G c bon.
0
Rejoignez-nous