TEST STRUCT [DEMANDE FORUM]

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 19 juil. 2004 à 22:16
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013 - 25 juil. 2004 à 12:10
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/24723-test-struct-demande-forum

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
25 juil. 2004 à 12:10
Combien savent ici ce que reprèsente la décoration @X?
Pas grand monde a mon avis.

Pour faire ce que Arnotic n'a pas fait je vais vous le dire. Le @ est une decoration inscrite sur toutes les fonctons. Le 'X' represente le nombre de byte de la liste de parametres. Ca c'est le model des fonctions C de type __stdcall.
Parcequ'en plus pour les autres types de fonctions c'est encore pire que ca!

Ou est la facilité dans ce que tu proposes ?
Certes la constante peut servir par la suite, mais si le gars novice ne sait pas quoi faire du "@X" il se prendra plus la tete qu'autre chose a comprendre la syntaxe de décoration. Un simple extern "C" résoudra tout les problemes.

Et pour le (HINSTANCE) elle est ou l'astuce dans ce que t'as fait ?
Soit honnete avec toi meme. Dans ce genre de code si ce n'est pour faire plus pro, le CAST n'a rien a faire ici.

Cepandant ton code reste tout de meme un bon exemple.

Tout le monde n'a pas ton niveau, meme si je ne sais pas vraiment ce que tu vaut, mais essaye tant que possible de faire des codes simplifié au maximum tout en restant simple et compréhensible.

Ce ne sont pas des critiques de mauvaise fois que je te fais, mais de simple remarques concernant l'amelioration du code. Tu sais j'en ai tout autant que toi a apprendre dans le domaine de la programmation si ce n'est meme plus!

Comme je l'ai dis plus haut ton code reste un tres bon exemple malgré tout.

A++ et bonne continuation Arnaud.

Samir

PS: BruNews est ton approbateur de code ? :p
Utilisateur anonyme
25 juil. 2004 à 12:04
Ah bon ? Et à quoi servent ces décorations ?
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
25 juil. 2004 à 10:22
Ce code a été validé pour Brunews avant post.
Les Goto si tu n'aimes pas ca ce n'est pas de ma faute.

Concernant les décorations je développe comme je le veux. Et si j'ai fais comme ce n'est pas pur hasard et en aucun cas ca complique le code si tu sais ce que les @X veulent dire.

Concernant la constante elle est déclarée et alors ? Ca complique en rien et si tu veux rajouter d'autres fonctions tu l'as déjà.
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
24 juil. 2004 à 23:39
T'aime bien avoir des lignes de codes inutiles ou t'as pas fait attention ?

1) Pourquoi déclarer hDLL de type HANDLE pour ensuite faire un cast avec un HINSTANCE ?
Déclare le directement en HINSTANCE.

2) Encore une chose inutile qui ne fait que compliquer le code.

Tu appelles la fonction avec la décoration crée par le compilo (_ChangeMyStruct@4). T'as juste a passé extern "C" a la fonction dans la DLL, au moins ca évite les problemes de décoration et sa rend le code plus compréhensible.

3) Tu créés une constante qui ne te sert qu'une seule fois(#define DLLTESTSTRUCT_API __declspec(dllexport))! Encore une ligne de plus qui ici est vraiment inutile!

4) Tu renvois tes condition avec des goto ce qui de la meme sorte t'obliges a ajouter des return pour terminer l'execution de la fonction. Tu peux tout simplement afficher tes MessageBox dans tes conditions.
Les goto rendent en plus le code moins lisible.

En gros heureusement qu'il n'y ait que quelques lignes de codes.

Tu as ajouter tout ce superflux pour paraitre plus pro ou tu as tout simplement fait ce code a l'arracher?
Comme le dis Brunews on est pas aux pièces.

Shell
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
20 juil. 2004 à 22:06
Utilisateur anonyme
20 juil. 2004 à 20:42
très intéressant. Moi je ne sais pas faire de DLL, c'est très Windosien. Alors jamais appris. MAis ca m'intéresse fortement. Où pourrais-je trouver des cours là dessus pour créer des DLL sous Visual C++ ???

Thx.
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
19 juil. 2004 à 22:31
Une personne dans le forum se demander comment on pouvait passer un strucutre dans une fonction (est particulièrement à une DLL) qui fait des choses à l'interiere de cette structure.

Mon exemple illustre donc le passage d'une structure grace à l'adresse mémoire de cette dernière c'est.

Certes ce n'est vraiment pas compliqué et c'est comme si tu travailler avec tous autres types.

Mais comme personne ne savait pas... un exemple vaut mieux que de long discours.
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
19 juil. 2004 à 22:26
ah excuse moi, je croyais que tu avais fait une fonction
DLLTESTSTRUCT_API MyStruct __stdcall ChangeMyStruct() qui renvoie un structure
(DLLTESTSTRUCT_API m'a induit en erreur)

Mais dans ce cas je ne comprends pas vraiment l'interêt de ta source, enfin inutile de préciser que c'est avec une structure. Tout se passe comme si c'était n'importe qul type de variable.
Ou alors il y a un détail que je n'ai pas vu?
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012
19 juil. 2004 à 22:22
Tu parles pour le déplacement avec pointeurs ?
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
19 juil. 2004 à 22:16
De toutes facons il était facile de se ramener à un cas connu en passant un pointeur de structure
Rejoignez-nous