Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

220 commentaire(s) de Clem sur des sources sur tout CodeS-SourceS

Le : 14/08/2008 15:18:11
Source : HOOKER ZWCREATEFILE
À tord à tord c'est vite dit, je suis bien content que l'antivirus de ma machine windows m'alerte quand un programme tente de hooker ZwCreateFile.
Très bon code, qui marche et sans virus (lu, compilé et testé, il n'y a aucun risque).
Je suis sur qu'il y a moyen de créer une sorte d'antivirus basique avec cette méthode, mais déjà très puissant (éviter de lancer n'importe quel .exe par exemple).


Le : 12/02/2007 11:41:10
Source : BUFFER CIRCULAIRE
juste les deux choses qui m'ont parues les plus gênantes dans l'introduction :
"Etonnant pourtant" le lecteur n'est pas tenu de savoir qu'il faut une pause entre ces deux mots quand il lit.
"mais en le principe" il semble manquer le mot "fait"

mais après tout on est pas là pour juger ton Français, plus le code.
j'ai d'ailleurs une chose de plus à noter à ce niveau, puisque je viens seulement de remarquer que tu utilise ton consommateur et ton producteur pour déterminer la 'fin' du buffer, mais pourtant tu utilise la valeur EOF dans tes fonctions pour laisser à l'utilisateur la possibilité de savoir quand le buffer est finit.
Mais et si jamais l'utilisateur voulait créer un buffer circulaire, pour gérer du son comme c'est souvent le cas dans ce type de tampons ? La donnée du son et bien souvent une valeur arbitraire, pouvant contenir la valeur de EOF justement!
En résumé, quelqu'un utilisant ce code tel quel et gérant un tampon de son, peut de façon aléatoire voir son programme déconner puisque il pourrait croire que le tampon serait finit sans qu'il le soit, soit une perte de données.
Pourquoi n'utilise pas plutôt un modèle de fonction get, dont l'entête serait plutôt :
int get_circ(CIRC *B, int * dest);

Et à la place de renvoyer la valeur, renverrait le status (0 en cas de réussite, 1 en cas d'echec par exemple), et prendrait en argument de sortie 'dest', l'octet à lire.
Rien ne changerait du côté de la fonction put, juste ses valeurs de retour, et ce n'est pas plus compliqué puisque la structure s'y prête déjà. Et après tout cela tu pourras commencer à juger le code source comme de niveau "intermédiaire" (il est très éloigné des codes experts que l'on peut trouver sur ce site)

Pour les commentaires, si je le reproche c'est parce que j'ai moi aussi la mauvaise habitude de ne pas en faire, mais comme tout programmeur, on sait que "plus-tard" se résume bien souvent à jamais.
Ah et les .h, évites aussi d'inclure sans savoir ceux que tu connais, ça fait un peu "tâche" dans un code source. Normalement, stdio.h et stdlib.h devraient te suffirent.

En espérant pouvoir noter en remontant la moyenne de cette source.


Le : 11/02/2007 17:32:43
Source : BUFFER CIRCULAIRE
Je confirme ce que erazor dit, les commentaires sont clairement trop peux nombreux surtout qu'il n'est pas difficile de commenter un code aussi court. Tu aurais pu expliquer au moins le principe, ce que tu entends par consommateur et par producteur. Sans parler du fait que la description est à relire avant de poster une news, car ici elle ne comporte pas que des fautes, mais des manques de virgules, des points et le pire des mots.

Et puis, c'est bien beau le malloc, mais les free ils sont passés où ? Le C n'a jamais eu de garbage collector et je ne sais vraiment pas d'où vient cette mauvaise manie de ne jamais désallouer la mémoire allouée!


Le : 21/01/2006 11:26:00
Source : DEMO GDI ARC
je sais...Pacman !!!!


Le : 17/01/2006 21:05:44
Source : [C/WIN32] BOUTON BITMAP - SUBCLASSING
l'idée est pas mauvaise, mais le subclassing c'est pas super non plus, le mieux serait de créer une nouvelle classe (registerclassex), ça éviterait de devoir la redéfinir à chaque fois "à la main" avec setwindowlong, et limite permet de simplement faire une petite modif aux classes windows de base sans devoir la réécrire en entier avec juste un appel à la procédure originale facilement obtenable par api.
pour le moment, je te laisse améliorer un peu et je voterais surement entre 8 et 9 :)


Le : 15/01/2006 17:09:47
Source : CLASSIFICATION HÉARCHIQUE AVEC CRITÉRE D'AGRÉGATION LA DISTANCE EUCLIDIENNE
je n'ai même pas l'envie de regarder la source avec une telle orthographe et grammaire, c'est incompréhensible j'ai trop peur de voir le code ...

et tu pourrais être plus explicite sur ton programme, comment s'en servir sur une image (commande console ?), quel genre d'image il accepte (bmp, jpg, ... ? 24 bits seulement, pas de support 32 avec canal alpha qui choisirait une couleur transparente comme avec un gif ?), idem pour la sortie, la screen on ne sait pas ce qu'elle représente si on connaît pas le sujet, il faudrait préciser le langage (C/C++/.NET) et le compilateur, ...


Le : 15/11/2005 23:00:34
Source : MOT DE PASSE
je ne vois pas le problème, un mot de passe est de taille fixe, et le tableau est remplit de 0 jusqu'a MAX-1, il n’écrase rien si ce n’est un octet non utilisé.

Mais il a y quand même plusieurs choses à revoir :
Il vaudrait mieux un unsigned char plutôt qu’un simple char, même si la définition des octets de façon aléatoire ne pose pas de problème ici (ne dépasse pas 127). A propos de l’aléatoire, c’est quoi cette fonction ? utilise une macro au pire, mais en plus une fonction n’utilisant que des int et des double, pour obtenir un char ??
Un #define hasard(a, b) rand%(b-a)+a    serait bien plus propre

Et ce qui serait bien c’est de placer les variables en hors global, déclare les dans tes fonctions même plutôt.



for (i=0;i<MAX;i++)
{
    if (mdp[i]!=demande[i]) return 1;
    else return 0;
}
il sert à quoi le for la ?
ok tu t’es trompé, tu voulais pas mettre plutôt :
for (i=0 ; i<MAX ; i++)
  if (mdp[i] != demande[i]) return 1 ;
return 0 ;

mais autant utiliser les fonctions de stdio, strcmp/stricmp !

ça serait bien de faire une vérification des arguments, et faire plusieurs cas du programme, genre –createrandompassword qui ferait le mot de passe, et sans arguments le demanderait.

Ah, et dernière chose, il faut toujours éviter les appels system


Le : 23/10/2005 11:36:45
Source : UTILISATION DE L'HEADER CMATH ET DES FONCTIONS
il faudrait mettre le mot clé "const" devant la déclaration de la variable pi. Tu n'est pas obligé de passer par des fonctions pour faire les calculs, autant utiliser une macro  :
#define Circonference(a) 2*a*pi
pareil pour pow, même si ce code sers d'exmple à cette fonction, pour une puissance élevée au carré ça revient à plus rapide de faire simplement rayon*rayon, peut être même encore pour la puissance cube
:)


Le : 07/10/2005 21:28:42
Source : TROUVER SA PROPRE ADRESSE IP
le fait que ça marche chez certains, et pas chez d'autres (pas testé ce code la, mais il donnera l'ip locale c'est sur, à part 127.0.0.1 j'en ai pas d'autre que l'api me donnerais ;), c'est bien comme comsobob l'explique, en fait il faudrait juste modifier un peu le code, et au lieu d'une simple boucle for qui prenne la dernière ip donnée par les api, il faudrait inclure un test de l'ip, pour savoir si elle est réseau ou pas ( cf: http://www.commentcamarche.net/internet/ip.php3#reservees )
le seul problème c'est que ce code n'est valade que pour chercher l'ip réseau, l'ip internet ne marchera jamais dans le cas de connexions routeurs, il faudrait donc en plus inclure un test de présence routeur, puis de lui demander l'ip internet le tout par protocole upnp...qui a le courage ? xD


Le : 07/09/2005 22:23:15
Source : CLASSE CHRONOMÈTRE HAUTE PRÉCISION
oui...et non en même temps ;)
un chrono ça sers à mesurer l'intervalle de temps écoulée entre deux instants, donc dans ce cas ça marche (ça servirait à quoi sinon d'afficher le temps en temps réel alors que déjà des millisecondes pour un humain c'est impossible à voir clairement!), mais si tu as envie de la voir afficher chaque instant, alors fait un timer qui affichera le temps^^
le but ici est de clairement mesurer le temps que met un code à s'éxécuter, et même si je n'aime pas les classes pour rien, son code est bon

il y a surtout une raison si le temps est renvoyé en string, c'est que l'api renvoi un pointer vers un LARGE_INTEGER, que vb ne traite pas ? (je me trompe peut être la, mais je ne pense pas en connaitre de larger_integer en vb)
cf: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers/timerreference/timerfunctions/queryperformancecounter.asp

je dois avouer que la j'ai du mal à comprendre ta dernière phrase, QueryPerformanceCounter n'est pas présent dans le noyau linux...mais pas GetTickCount non plus, surtout que c'est du vb6, donc ça ne risque pas de tourner sur beaucoup d'autres os que windows :/

mythic ne s'est pas foulé je l'avoue, mais son code est interessant/utile, ça permet de savoir optimiser son code vb :)



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.