AIDE AUX MOTS CROISES (WIN32)

MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008 - 7 juin 2005 à 11:33
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 14 déc. 2005 à 00:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31892-aide-aux-mots-croises-win32

magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
14 déc. 2005 à 00:11
je ne revendiquerai pas ceci
citation de notre ami Dijkstra
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 déc. 2005 à 23:41
magic_nono le philosophe de cppfrance, pour une fois je n'utilise pas ce terme péjorativement.
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
13 déc. 2005 à 23:35
héhé
lol
j'aime ^^
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
13 déc. 2005 à 23:32
les principes de bases

- tout programme peut etre réduit d'au moins une ligne
- dans un prog il y a au moins une ligne qui comporte un bug ou erreur quant-à l'objectif

cela à l'extreme donne donc
que tout programme peut etre écrit en une ligne qui comporte un bug.

magicalement
bonne prog à tous
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 déc. 2005 à 22:31
Il n'y a aucune manière qui peut garantir de tout bug, c'est seulement l'habitude qui fait que 'normalement' on en a de moins en moins mais comme nous sommes humains le bug est toujours possible.
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
13 déc. 2005 à 22:02
Sans bug??? Cette manière de programmer peut prévenir les bugs? Mais dans l'évatualité qu'il y a des bugs, ce doit être difficile à débogger non?
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
13 déc. 2005 à 21:48
Heu
oui ^^
mais c'est sa maniere a lui de programmer, et a chaque fois qu'il poste 10 personnes lui font la meme remarque.
MAIS ca n'empeche que c'est super rapide, efficace, sans bug, bien codé malgré tout.
juste un tit copier-coller de ce meme forum:
Ben oui pour parser et/ou insérer entre des milliers d'octets, faut faire dans l'efficace et y a pas 36 manières.
lol
++
ad
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
13 déc. 2005 à 21:36
Wow!!! La première chose qui me frappe en regardent ton code c'est qu'il utilise goto. Je ne sais pas pour toi mais ça n'aurais pas été plus simple de faire des fonctions? Autre chose, c'est dûr à lire. Tout est coller. Mais pour le reste, c'est très bon.
Anormal13 Messages postés 24 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 22 février 2006
16 nov. 2005 à 17:04
J'arrive pas à le compilo le programme avec Visual studio 2003 ou plus exactement il me sort pas d'erreur de compile en mode realese mais l'exe ne marche pas et lorsque je compile en mode debug il me sort pas mal de warning à la con + 2 erreur :
- LNK2019 symbole externe non résolu
- LNK1120 fatal error : extenre non résolu
Si quelqu'un pourait répondre à un débutant comme moi.
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
23 sept. 2005 à 16:57
Si tu le dis.

Bonne prog ...
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 sept. 2005 à 14:47
Ben oui pour parser et/ou insérer entre des milliers d'octets, faut faire dans l'efficace et y a pas 36 manières.
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
23 sept. 2005 à 14:27
J'ai pas parlé de coincé, je dis seulement que c'est un cauchemar à lire ce code, ça été écrit comme de l'asm.

Rien à ajouter ...
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
22 sept. 2005 à 17:03
max12 si tu disais où tu coinces au lieu de raler, on pourrait faire avancer le schmillblick.
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
22 sept. 2005 à 16:50
C'est un bordel ce programme, il faudrait au moins des commentaires.
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
12 juil. 2005 à 13:39
magic_nono -> nan, C++... ils le disent eux memes dans un des readme... mais ya aussi de l'asm...de toute facon, les sources ne sont pas dispo...(et eux c'est seulement directX) ... bref ^^
merci qd meme...
++
ad
T_Mehdi Messages postés 294 Date d'inscription samedi 5 février 2005 Statut Membre Dernière intervention 24 juillet 2015
12 juil. 2005 à 12:17
chez moi ca fesai si je me rapel bien 4Ko
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 juil. 2005 à 10:32
Quels 23 Ko ? cet exemple n'en fait que 11 une fois compilé.
Un prog win ne peut pas faire 20 octets, rien que l'header PE c'est plus gros, ce sont des progs DOS dont vous parlez.
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
12 juil. 2005 à 09:37
Arnaud>
Pour ce que j'en sais, farbrausch et compagnie font leur démos en asm pur et melent la musique aux textures ainsi qu'aux trajectoires, ils arrivent a faire des trucs magnifiques.
De plus, ils font un grand usage des lib présentes dans le system en évitant de les importer dans leurs exe (directX,OpenGL)

Je pense qu'il serait très intéressant de voir de ces sources... mais commentées à mort....
++
Nono.
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
12 juil. 2005 à 01:03
ben dans ce cas...comment ca se fait que l'exe soit malgré tout si gros?? bon 24K , encore une fois, c'est pas la mort, mais ya vraiement pas moyen de faire descendre ca? les progs asm , eux, font du 20 octets... d'ou viennent ces 23Kos que le compilo rajoute ? c'est a cause des handles windows ?
PS: dis le moi si je te saoule avec cette question mdr
et merci qd meme ^^
ad
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 juil. 2005 à 23:31
Que soit dans un cpp ou asm ne change rien si on peut empêcher le compilo d'y mettre ses pattes:
__declspec(naked)
devant la fonction (sur VS) et sera pur asm par force.
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
11 juil. 2005 à 21:04
ben disons que la en ce moment ca m'arrangerait bien de faire un exe le plus petit possible...en fait je m'extasie sur le boulot de farbrausch, qui fait des démos sublimes d'au moins 5 minutes en seulement 64 Ko, or si un simple prog avec juste un int main(void){return 0}; fait 24 Ko il reste plus grand chose...
ya pas moyen de faire le point d'entreé dans un .asm et de metre le reste du prog , codé en cpp, dans des libs , et linker le tout?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 juil. 2005 à 20:34
multithreaded je ne mets jamais cause que je me sers direct de l'API donc aucun besoin de cette lib.
Mode release, bien entendu.
Optimisation, je privilégie toujours la vitesse à la taille.
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
6 juil. 2005 à 17:44
juste une ptite question en passant..
apparement ya du monde qui s'extasie sur la petite taille du .exe ...
chez moi en serrant au max j'arrive a 24 Ko...c'est pas si petit que ca..;ptet a cause de la ressource ?
Sinon quels sont en gros les 'trucs' pour diminuer au max la taille d'un prog? je ne parle pas ici des compresseurs d'exe genre UPX
perso dans les options je mets en multithreaded DLL, mode release, optimisation: plus petite taille. ya autre chose?
merci (ps: ya déja eu un forum ici la dessus mais il n'a rien donné de tres concluant...)
tks
++ ad
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
8 juin 2005 à 15:09
oui lol c'est ce que je dis, c'est en réponse a ceux qui disait pas de goto !
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
8 juin 2005 à 14:55
mdr un truc optimisé, il l'est aussi pour pas 'dérailler'
pt de vue lisibilité je suppose que cette source est d'une clarté limide par rapport au code d'openGL ^^ tt est relatif
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
8 juin 2005 à 14:48
Je suis d'accord, mais ya optimisé et optimisé, tu optimises pas autant qu'un moteur graphique ce genre de programme, c'est ça que je veux dire ... Un moteur graphique doit etre le plus performant possible au mépris total de la lisibilité alors que ce genre de programme, la lisibilitée doit etre privilégiée. Enfin, ce n'est que mon avis.

Bravo en tout cas pour le vocabulaire lol, je m'étais demandé si tu t'étais fais chier ou pas, mais commencant a connaitre tes sources, je me suis dis que tu devais l'avoir chipper de quelque part.

Kirua: Ca doit etre des furieux tes types, j'en connais aussi mais eux ils comprennent rien ;-), en tout cas, il vaut mieux pour les debutants comme moi faire quelque chose de potable en vitesse mais fiable qu'un truc optimisé a fond mais qui deraille totalement ...
T_Mehdi Messages postés 294 Date d'inscription samedi 5 février 2005 Statut Membre Dernière intervention 24 juillet 2015
8 juin 2005 à 14:45
Merci
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 juin 2005 à 14:20
ben pour être honnête, j'avais écrit un prog pour casser (en 1998 ça nous rajeunit pas) la base d'un dico sur CD et extraire les mots.
Il est clair que je le ferai plus maintenant (bouhhh....).
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
8 juin 2005 à 13:50
A l'Epita j'ai même rencontré des puritains qui refusaient les break et les continue, c'est te dire ;) Ceci dit, j'ai assez bien intégré le puritanisme anti-goto. Si tu n'utilises pas les concepts du langage, tu t'empêches d'utiliser un tas d'outils optimisés pour la structure propre du langage (dur dur pr le compilo de détecter des erreurs de portées de variables avec des sauts). Et comme tu disais, pt de vue lisibilité... bonjour.

Oµ as-tu trouvé la base de données des mots BruNews? Ça m'intéresse grandement.
StanOfSky Messages postés 43 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 7 octobre 2006
8 juin 2005 à 12:10
Oui c'est un code tres optimisé, tres proche de l'assembleur.
On ne code plus comme ca depuis que les machines ont des prossos hyper puissant. Me rapelle encore quand je programmais en Pascal, et qu'il fallait tout ecrire en ASM des qu'on faisait un tout petit peu de graphisme.
Le problème avec les labels et gotos, c'est que ce sont des instructions ASm (instruction machine).
Il faut programmer avec les outils du langage, c'est beaucoup plus comprehensible d'un point de vu algorithmique et il y a beaucoup moins de risque d'erreur (impossible a retrouver a cause des goto/label)
C'est comme si je faisais de la programmation itérative en prolog...
Brunews lui maitrise bien le langage et utilise bien les goto/label, libre a lui de les utiliser, mais ce n'est pas conseillé pour un débutant.
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 juin 2005 à 12:02
C'est pas tellement l'asm employé ici qui réduit la taille de l'exe mais supprimer l'usage du CRT en indiquant un point d'entrée perso au linker:
#pragma comment(linker, "/entry:myWinMain")
J'ai mis ensuite en asm dans myWinMain() juste pour éviter la stackframe que le compilo insère d'habitude (autant aller jusqu'au bout). L'API étant standard __stdcall, on push les params right->left et on ne dépile pas.

MuPuf > Il n'y a pas ici de fonctions appelées 'de tps en tps', elles le sont à chaque clic bouton me semble. C'est me semble plus agréable d'avoir un résultat quasi instantané, non ?
T_Mehdi Messages postés 294 Date d'inscription samedi 5 février 2005 Statut Membre Dernière intervention 24 juillet 2015
8 juin 2005 à 11:49
a we d'apese mes recherche j'ai lu des trucs a propos de prolog et epidog..... j'ai rien pigé.

une petit explication sera vraimment simpa de votre part
T_Mehdi Messages postés 294 Date d'inscription samedi 5 février 2005 Statut Membre Dernière intervention 24 juillet 2015
8 juin 2005 à 11:36
Bon Pour la source j'ai pas pue la compiler
mais bon j'ai bien aimer la fonction qui reduit la taille de l'exe.

pourai tu me l'expliquer si c possbile stp (Suis nob en Asm).
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
8 juin 2005 à 09:50
Et pourquoi optimiser pour la vitesse des fonctions appellé une fois de tps en tps.
Ya pas que l'optimisation qui compte, ya le tps qu'il faut pour le programmer aussi !
Arnaud16022 Messages postés 1329 Date d'inscription vendredi 15 août 2003 Statut Membre Dernière intervention 16 juin 2010 2
8 juin 2005 à 00:22
bon OK le code est dur d'acces, mais je n'ai jamais compris tout ce micmac autour de goto.
c'est qd meme un intuction de base du processeur! sans ca onn pourrait meme pas faire de fonction, et pour un simple if() ca serait super galere pour le compilo
bref je ne veux pas relancer le débat
un peu plus de comentaires autaient été les bienvenus, tout le monde n'a pas ce niveau ici :p
cs_max12 Messages postés 1491 Date d'inscription dimanche 19 novembre 2000 Statut Modérateur Dernière intervention 7 juillet 2014
7 juin 2005 à 19:18
Le code est malheureusement illisible :( Mais bon ça semble intêressant.
ctx_man Messages postés 285 Date d'inscription mardi 28 décembre 2004 Statut Membre Dernière intervention 20 janvier 2013 3
7 juin 2005 à 17:43
Je suis plutot du même avis que StanOfSky. Je trouve le code très compacte, plusieurs instructions sur la même ligne, les goto, les labels ... autant de choses déconseillées. Tu nous sort même un bout de code en asm ! Donc bien que impresionnant et démontrant bien ta maitrise du language, je trouve que cette façon de coder est a déconseiller, surtout pour des projets en commun.
StanOfSky Messages postés 43 Date d'inscription mardi 30 mars 2004 Statut Membre Dernière intervention 7 octobre 2006
7 juin 2005 à 16:52
t'aurais du le programmer en assembleur, on aurait pas vu la différence...
personnelement, je ne trouve pas ce très propre comme facon de programmer, c'est à ce demander pourquoi on a inventé le c...
les labels et les gotos c'est vraiment pas beau, j'espere que les débutants ne prendront pas exemple, ca ne risque pas de les aider d'un point de vue algorithmique.

en revanche, bonne maitrise de l'api windows
ca mérite le coup d'oeil en effet
main original, bien qu'un peu inutile.

tu aurais du le mettre en initié, parce que c'est quand tres particulier comme facon de programmer en C.
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
7 juin 2005 à 14:41
Hello

Ce source date un peu il me semble mais n'a pas vieilli d'un chouia.

A paremment,tu l'a mis à la sauce VC7 ...


Rien à dire, parfait
++
Nono.
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
7 juin 2005 à 13:45
euh, tu as mis cette source en debutant, ya pas comme une petite erreur ?
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 juin 2005 à 13:40
Non non Urgo, c'est pas un oubli, faut bien mettre un petit truc nouveau de temps en temps (mais pas tout d'un coup).
cs_Urgo Messages postés 780 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 16 avril 2009 1
7 juin 2005 à 12:26
Tu as laissé l'astuce pour obtenir un exe petit, fait exprès ou oubli? Car c'est la première fois je crois que je la vois dans une de tes sources.

Sinon je ne comprends pas pourquoi tu mets "dword ptr" devant l'appel aux API dans le point d'entrée de ton programme?

Sinon c'est vrai que ce code mérite le coup d'oeil, mais là pas trop le temps de tout analyser.
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
7 juin 2005 à 11:33
P**AIN ! Avec toi on comprend ce que veux dire programmer ...
Deja premiere chose qui m'a frappé, c'est l'utilisation des api windows pour lire les fichiers (je dois me faire chier a le faire en c alors que ça doit etre plus simple avec) c'est quoi l'avantage a par la taille (que tu m'avais deja dis) ?
Je vais me pencher dessus, car la c'est un peu du chinois pour moi, je suis sur que je vais beaucoup apprendre ! MERCI !!!
Rejoignez-nous