DLL

[Résolu]
Signaler
Messages postés
5
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
5 juillet 2008
-
Messages postés
5
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
5 juillet 2008
-
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

9 réponses

Messages postés
5
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
5 juillet 2008

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
Messages postés
169
Date d'inscription
dimanche 16 février 2003
Statut
Membre
Dernière intervention
15 avril 2008

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.
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
45
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="" />
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
5
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
5 juillet 2008

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, à +
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
169
Date d'inscription
dimanche 16 février 2003
Statut
Membre
Dernière intervention
15 avril 2008

Sans DLL c plus PRO
Messages postés
135
Date d'inscription
jeudi 22 mars 2007
Statut
Membre
Dernière intervention
25 juillet 2008

>>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
Messages postés
169
Date d'inscription
dimanche 16 février 2003
Statut
Membre
Dernière intervention
15 avril 2008

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.