MFC + DLL + multilanguage [C++] - Programmation
Marsh Posté le 25-07-2002 à 13:19:44
J'ai pas compris ce que tu veux dire avec "DialogBox dans ces DLLs de language" : c'est quoi ? Une DLL d'extension MFC qui contient une sousclasse de CDialog ?
Marsh Posté le 25-07-2002 à 13:49:38
Ben en fait puisque les boites de dialogues doivent etre en plusieurs langues je ne peux pas les mettre directement en resource de ma DLL principale, je dois donc les mettre dans mes DLLs de language, qui ne contiennent aucun code, juste des resources (enfin jusqu'a present)
Marsh Posté le 25-07-2002 à 13:50:12
Pour l'instant c'est pas des DLLs d'extension MFC, juste des DLL Win32.
Marsh Posté le 25-07-2002 à 16:37:49
Godbout a écrit a écrit : Ca fait une semaine que j'me suis mis au MFC, et je dois dire que c'est assez pratique. J'ai fait quelques .exe en dialog based. La j'ai besoin de faire des DLLS multilangues. Donc j'ai ma DLL principales, et mes ressources dans d'autres DLLs. Jusqu'a maintenant je mettais mes DialogBox dans ces DLLs de language, et je les traduisais. Et dans ma DLL principale je recuperais le handle de la dll language, puis je balancais ca a une DlgProc pour traiter. Mais bon dans ce cas tout le systeme qui rend attrayant les MFC est perdu (ClassWizzard, etc). Alors y a t il un autre moyen de proceder ? De plus est ce que je peux utiliser le meme systeme "Dialog based application" que l'on trouve lorsque l'on fait un exe, dans une dll ? |
...ça fait bientot 3 mois que tu t'es mis au MFC il y a une semaine !
Marsh Posté le 25-07-2002 à 16:41:04
La je m'y suis vraiment mis, avec bouquin et tout et tout. Je suis meme alle jusqu'a creer un exe MFC alors hein
Marsh Posté le 25-07-2002 à 16:41:26
Pkoi ca m'etonne pas qu'une reponse d'el_gringo va pas bcp m'avancer ?
Marsh Posté le 25-07-2002 à 17:21:46
c pas logique ta manière de faier.
Tes dll de traduction, utilises les pas pour afficher les dialogue box, mais juste pour retrouver le libellés d'une seule dialog box, qui sera décrite dans ton exécutable. y a bien un executable qui utilise tes dll...
parec que, pour réponde à ta question :
De plus est ce que je peux utiliser le meme systeme "Dialog based application" que l'on trouve lorsque l'on fait un exe, dans une dll ? |
, non, tu peux pas faire ça avec une dll !
Une dll c pas une application, c un module !
Marsh Posté le 25-07-2002 à 17:22:14
Godbout a écrit a écrit : Pkoi ca m'etonne pas qu'une reponse d'el_gringo va pas bcp m'avancer ? |
ha !? ok, j'arrête ici l'assistance !
Marsh Posté le 25-07-2002 à 17:23:00
el_gringo a écrit a écrit : ha !? ok, j'arrête ici l'assistance ! |
Marsh Posté le 25-07-2002 à 17:24:48
el_gringo a écrit a écrit : c pas logique ta manière de faier. Tes dll de traduction, utilises les pas pour afficher les dialogue box, mais juste pour retrouver le libellés d'une seule dialog box, qui sera décrite dans ton exécutable. y a bien un executable qui utilise tes dll... parec que, pour réponde à ta question :
, non, tu peux pas faire ça avec une dll ! |
l'exe c'est un programme developpe par quelqu'un d'autre. Moi je fais juste des DLLs d'extension pour ce programme. Bon la plupart du temps, quand j'ai des Dlg a faire c'est des trucs assez con con, style pour rentrer deux trois parametres.
Sinon l'histoire des libelles de DlgBox je capte pas
Marsh Posté le 25-07-2002 à 17:26:07
En fait on a du mal se comprendre tous les deux
Les DLLs de language n'affichent pas, d'ailleurs j'ai aucun code. C'est juste des ressources (dont Dialog et String table).
A moins que j'ai mal compris ce que tu as voulu dire...
Marsh Posté le 25-07-2002 à 17:36:53
Godbout a écrit a écrit : En fait on a du mal se comprendre tous les deux Les DLLs de language n'affichent pas, d'ailleurs j'ai aucun code. C'est juste des ressources (dont Dialog et String table). A moins que j'ai mal compris ce que tu as voulu dire... |
ouais, moi j'comprend pas trop non plus ton histoire de DLL de langage !!!
t'as une dll pas langage !? genre une dll "français", une dll "anglais", ... ?
Marsh Posté le 25-07-2002 à 17:58:35
ouais c'est comme ca que ca marche le multilanguage.
Toutes les ressources + string table dans une dll par language (donc une francaise, une anglaise, etc...)
Dans ton code source tu n'utilises que des ID pour appeler les strings, dialog, etc..., aucune reference a la langue.
Marsh Posté le 25-07-2002 à 18:01:36
ps: je suis alle faire un p'tit tour sur codeguru, codeproject, msdn, apparemment c'est la methode officielle.
Marsh Posté le 25-07-2002 à 18:17:32
Godbout a écrit a écrit : ouais c'est comme ca que ca marche le multilanguage. Toutes les ressources + string table dans une dll par language (donc une francaise, une anglaise, etc...) Dans ton code source tu n'utilises que des ID pour appeler les strings, dialog, etc..., aucune reference a la langue. |
ouais, enfin, "c'est comme ça que ça marche !", t'y vas fort toi. c pas parce que t'as lu qu'on pouvait faire comme ça sur codeguru ou autre que c'est LA METHODE officielle.
Y a d'autres façon de faire très bien...
Enfin, bon...
Et du coup, c quoi ton problème ?
Marsh Posté le 25-07-2002 à 18:35:14
ah ben j'ai lu ca partout
T'as une autre facon ? je suis preneur
Parce qu'en fait je pense que la mienne va etre assez bordelique avec les MFC (ca marche, j'ai reussi, mais c'est bordelique )
Marsh Posté le 25-07-2002 à 18:42:13
C'est la méthode officiel, je confirme.
Tu lis ta DLL, et les variables à l'intèrieur?
Avec des trucs du genre :
LoadResource
LoadString
Marsh Posté le 26-07-2002 à 09:07:51
ouaip, j'ouvre et je charge avec LoadString et , DialogBox, etc...
Marsh Posté le 26-07-2002 à 09:14:56
Je crois pas qu'il y est plus simple, à la manière MFC.
Marsh Posté le 26-07-2002 à 09:20:17
Donc je suis oblige de faire une Procedure pour ma boite de dialogue histoire de traiter les messages ?
Pas moyen d'utiliser le classview, histoire de faciliter la tache ?
Marsh Posté le 26-07-2002 à 09:23:10
Godbout a écrit a écrit : ah ben j'ai lu ca partout T'as une autre facon ? je suis preneur Parce qu'en fait je pense que la mienne va etre assez bordelique avec les MFC (ca marche, j'ai reussi, mais c'est bordelique ) |
Bah, tu peux aller lire des fichiers .ini spécifiques à chaque langue. En plus, ça permet de pouvoir personnaliser les messages.
Marsh Posté le 26-07-2002 à 09:29:57
el_gringo a écrit a écrit : Bah, tu peux aller lire des fichiers .ini spécifiques à chaque langue. En plus, ça permet de pouvoir personnaliser les messages. |
euh ca c'est ce que je faisais au tout debut, c'est pas super super hein
Marsh Posté le 26-07-2002 à 10:20:57
Godbout a écrit a écrit : euh ca c'est ce que je faisais au tout debut, c'est pas super super hein |
...tu reproches quoi a cette façon de faire ? (à part d'être plus simple à mettre en place, et plus flexible )
Marsh Posté le 26-07-2002 à 10:24:31
Ben ca fait pas vraiment professionel, mais plutot debutant amateur
Marsh Posté le 26-07-2002 à 10:50:37
Godbout a écrit a écrit : Ben ca fait pas vraiment professionel, mais plutot debutant amateur |
ha... et la seule raison pour laquelle tu t'emmerde ds un truc que tu maitrises pas, c'est "faire pro" !? génial !
Marsh Posté le 26-07-2002 à 10:57:33
nan c'est parce que les fichiers ini c'est completement degueu, c'est ce que je faisais avant, oui ca marche mais c'est archi a chier. N'importe quel logiciel multilangue a une dll par language c'est tout.
Marsh Posté le 26-07-2002 à 11:42:14
En plus si fallait faire les Dlg dans chaque langue avec des .ini
Marsh Posté le 26-07-2002 à 11:44:16
Godbout a écrit a écrit : nan c'est parce que les fichiers ini c'est completement degueu, c'est ce que je faisais avant, oui ca marche mais c'est archi a chier. N'importe quel logiciel multilangue a une dll par language c'est tout. |
Ouais, mais, vouloi faire des trucs qui font pro, c'est bien, mais pour ça, 'faut savoir programmer comme un pro. Les débutants amateur qui galèrent avec les dll multilingues, ça fait des fichiers ini !
Marsh Posté le 26-07-2002 à 11:45:19
Godbout a écrit a écrit : En plus si fallait faire les Dlg dans chaque langue avec des .ini |
Mais, je comprend pas justement, pourquoi tu refais les dlg pour chaque langage !?
les dlg, c les mêmes, y a que les libellés qui changent !
Marsh Posté le 26-07-2002 à 11:49:55
el_gringo a écrit a écrit : Ouais, mais, vouloi faire des trucs qui font pro, c'est bien, mais pour ça, 'faut savoir programmer comme un pro. Les débutants amateur qui galèrent avec les dll multilingues, ça fait des fichiers ini ! |
Je devrais plus etre en age de galerer
Et pis c'est en forgeant qu'on devient forgeron nan ?
Marsh Posté le 26-07-2002 à 11:51:40
el_gringo a écrit a écrit : Mais, je comprend pas justement, pourquoi tu refais les dlg pour chaque langage !? les dlg, c les mêmes, y a que les libellés qui changent ! |
Vi vi y a que les libelles !
On a un prog au boulot, tu lui files ta dll de language, il scanne les strings tables + menus + Dlg, etc..., il t'en sort les libelles, tu traduits, et il te recompile tout ca en differents languages.
En fait Dlg + menus + string je les fais que dans une DLl (native), et je traduis avec le prog.
Marsh Posté le 26-07-2002 à 15:50:12
Godbout a écrit a écrit : Je devrais plus etre en age de galerer Et pis c'est en forgeant qu'on devient forgeron nan ? |
On se doit de galérer de temps en temps quel que soit sont age. Si on galère pas, c'est qu'on avance pas, et du coup, on s'emmerde !
Marsh Posté le 26-07-2002 à 15:54:59
Je crois que j'ai pas mal a apprendre encore, mes codes sont assez bordeliques
La je tate les list STL.
Marsh Posté le 26-07-2002 à 17:27:45
jdoit vous avouez qq chose: j ai toujours réver de faire du vrai c++ avec des boites de dialogs et des socket et tt
2 problemes:
comment avez vous apris la programmation windows?
Marsh Posté le 29-07-2002 à 01:47:42
dev c++ connais pas.
Si tu connais le c c'est bon.
Sinon ben bouquin + tut, mais bon je trouve que je code assez degueu.
Marsh Posté le 29-07-2002 à 02:32:06
Godbout a écrit a écrit : nan c'est parce que les fichiers ini c'est completement degueu, c'est ce que je faisais avant, oui ca marche mais c'est archi a chier. N'importe quel logiciel multilangue a une dll par language c'est tout. |
et pourquoi donc ?
Marsh Posté le 29-07-2002 à 08:43:34
youdontcare a écrit a écrit : et pourquoi donc ? |
c'est vrai ça, pourquoi donc ? hein !?
Marsh Posté le 25-07-2002 à 11:45:47
Ca fait une semaine que j'me suis mis au MFC, et je dois dire que c'est assez pratique. J'ai fait quelques .exe en dialog based.
La j'ai besoin de faire des DLLS multilangues. Donc j'ai ma DLL principales, et mes ressources dans d'autres DLLs.
Jusqu'a maintenant je mettais mes DialogBox dans ces DLLs de language, et je les traduisais. Et dans ma DLL principale je recuperais le handle de la dll language, puis je balancais ca a une DlgProc pour traiter. Mais bon dans ce cas tout le systeme qui rend attrayant les MFC est perdu (ClassWizzard, etc).
Alors y a t il un autre moyen de proceder ?
De plus est ce que je peux utiliser le meme systeme "Dialog based application" que l'on trouve lorsque l'on fait un exe, dans une dll ?
---------------
Super.