DLL [Résolu]

THYNOORD 5 Messages postés dimanche 27 janvier 2008Date d'inscription 5 juillet 2008 Dernière intervention - 23 mars 2008 à 10:22 - Dernière réponse : THYNOORD 5 Messages postés dimanche 27 janvier 2008Date d'inscription 5 juillet 2008 Dernière intervention
- 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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
THYNOORD 5 Messages postés dimanche 27 janvier 2008Date d'inscription 5 juillet 2008 Dernière intervention - 1 avril 2008 à 17:55
3
Merci
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

Merci THYNOORD 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 75 internautes ce mois-ci

Commenter la réponse de THYNOORD
cs_matrix1 175 Messages postés dimanche 16 février 2003Date d'inscription 15 avril 2008 Dernière intervention - 23 mars 2008 à 12:39
0
Merci
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.
Commenter la réponse de cs_matrix1
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 24 mars 2008 à 11:24
0
Merci
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="" />
Commenter la réponse de Cirec
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 24 mars 2008 à 15:30
0
Merci
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++
Commenter la réponse de BruNews
THYNOORD 5 Messages postés dimanche 27 janvier 2008Date d'inscription 5 juillet 2008 Dernière intervention - 24 mars 2008 à 18:57
0
Merci
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, à +
Commenter la réponse de THYNOORD
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 24 mars 2008 à 19:36
0
Merci
BruNews :
je te l'accorde le raccourci est excessif  ... je me suis mal exprimé ce que voulais dire (schématiquement) c'est que :
 les ressources qu'elles soient dans une DLL ou dans un EXE c'est pareil, autant pour l'insertion que pour la récupération de ces dernières.

Par contre :
"Une DLL doit aussi fournir un callback traitant au minimum DLL_PROCESS_ATTACH."
sous Delphi ce n'est pas une absolue nécessité ... j'ai déjà crée plusieurs DLL sans  callback  avec le fameux dwReason
"procedure DLLEntryPoint(dwReason: DWORD); stdcall;"

commentaire de Shining sur la chose :
// Delphi ne fait pas appel à DLL_PROCESS_ATTACH !!

Voir ici :
http://www.delphifr.com/codes/DLLFORM-AVEC-STYLE-XP-NO-SCRATCH_34064.aspx
dans le fichier DllDemo.dpr

Mais merci pour toutes ces précisions

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
BruNews 21054 Messages postés jeudi 23 janvier 2003Date d'inscription 7 novembre 2014 Dernière intervention - 24 mars 2008 à 19:48
0
Merci
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++
Commenter la réponse de BruNews
cs_matrix1 175 Messages postés dimanche 16 février 2003Date d'inscription 15 avril 2008 Dernière intervention - 25 mars 2008 à 15:53
0
Merci
Sans DLL c plus PRO
Commenter la réponse de cs_matrix1
ELCouz 135 Messages postés jeudi 22 mars 2007Date d'inscription 25 juillet 2008 Dernière intervention - 25 mars 2008 à 20:50
0
Merci
>>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
Commenter la réponse de ELCouz
cs_matrix1 175 Messages postés dimanche 16 février 2003Date d'inscription 15 avril 2008 Dernière intervention - 26 mars 2008 à 11:53
0
Merci
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.
Commenter la réponse de cs_matrix1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.