bonjour,
j'ai deux classe différente qui utilise une fonction déclaré dans un .h et .cpp.
Pour utiliser cette fonction, je fais un #include "monPth.h"
et apres j'utilise la fonction.
le seul problème c'est que ca passe sur une classe mais pas dans l'autre!!!!
voila l'erreur généré dans le cpp de ma 2ème classe.
voila les déclarations/utilisation dans les différentes classes:IP.cpp(23) : error C2064: le terme ne correspond pas à une fonction qui prend les arguments 2
une idée sur une telle erreur?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 //classe ip (IP.cpp) unsigned short cksum = checksum((unsigned short *)this, sizeof(IP)); //génère l'erreur! //classe icmp (ICMP.cpp) unsigned short cksum = checksum((unsigned short *) this, sizeof(ICMP)); //pas de pb! //code de la fonction checksum: unsigned short checksum(unsigned short *buffer, int size) { unsigned long cksum=0; while(size >1) { cksum+=*buffer++; size -=sizeof(unsigned short); } if(size) { cksum += *(unsigned char*)buffer; } cksum = (cksum >> 16) + (cksum & 0xffff); cksum += (cksum >>16); /* ~ est l'opérateur de complément à un sur les nombres binaires. Il inverse tous les bits: 0 devient 1 et 1 devient 0*/ return (unsigned short)(~cksum); }
Partager