IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Probleme de declaration


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 53
    Par défaut Probleme de declaration
    Bonjour, ca doit faire environ 3 ans que je fais du C++ autodidacte, et recement je suis tombé sur un probleme que me laisse sans voix .
    Je declare une classe avec des variables notament une structure ( c'est elle qui est en question).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Cping_server	*parent_server;
    struct in_addr	ip;
    unsigned short	id;				
    LARGE_INTEGER	ticks;			
    TCHAR			*tszName;		
    TCHAR			*tszAddress;	
    float			ping;
    Jusque la pas de probleme.
    Du moins jusqu'a que j'appel une fonction qui me retourne l'addresse contenu dans tszName. Et la c'est le drame, le programme plante. En cherchant un peut, j'ai trouvé que l'adresse retourné par la fonction était l'addresse contenu a la memoire de tszName + 4.Ce qui cause un probleme.
    Pourquoi cela????
    Le moyen que j'ai trouvé pour resoudre le probleme est de declarer comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Cping_server	*parent_server;
    unsigned short	id;				
    LARGE_INTEGER	ticks;			
    TCHAR			*tszName;		
    TCHAR			*tszAddress;	
    float			ping;	
    struct in_addr	ip;
    Je comprend plus rien...
    Merci

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Si tu commençais par nous montrer le code en question ? Le top du top, ce serait un code minimal mais ocmplet qui reproduit le problème.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 53
    Par défaut
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    class	Cping_packet
    {
    	friend class	Cping_server;
    	friend class	Cping_sender;
    	friend class	Cresolve_server;
    private:
    	Cping_server	*parent_server;
    	unsigned short	id;				
    	LARGE_INTEGER	ticks;			
    	TCHAR			*tszName;		
    	TCHAR			*tszAddress;	
    	float			ping;			
    	struct in_addr	ip;			
    public:
     
    	inline TCHAR *getAddress()
    	{
    		return tszAddress;
    	}
     
    	inline TCHAR *getName()
    	{
    		return tszName;
    	}
     
    	inline float getPing()
    	{
    		return ping;
    	}
     
    	inline unsigned int getIntAddr()
    	{
    		return ip.S_un.S_un_b.s_b4 + (ip.S_un.S_un_b.s_b3 << 8) + (ip.S_un.S_un_b.s_b2 << 16) + (ip.S_un.S_un_b.s_b1 << 24);
    	}
     
    	Cping_packet(struct in_addr &s_address, Cping_server *parent);
    	~		Cping_packet();
    	void	send();
    };
    voila la classe le reste n'importe pas dans le probleme

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 53
    Par défaut
    Voila j'ai encore une classe contaminé par ce probleme
    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
     
    class			Cthread
    {
    	friend DWORD WINAPI runThread(LPVOID lpParam);
    private:
    	DWORD	threadId;
    	HANDLE	threadHandle;
    	bool	_stop;
    protected:
     
    	virtual void run()
    	{
    	};
    public:
    	Cthread();
    	~		Cthread();
     
    	void	start();
    	void	stop();
    	void	kill();
    	void	wait(int time);
     
    	inline bool isRunning()
    	{
    		if(threadHandle != NULL) return true;
    		return false;
    	};
    };
    sans
    le bool _stop;
    tout marche bien.
    Avec, au moment de la creation
    threadHandle = NULL ;
    n'est pas effectué correctement.

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu as des problèmes ailleurs dans ton code. Essaye d'extraire un exemple complet minimal qui reproduit le problème.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    salut, essaye d'utiliser ta classe SEULE, sans autre code à coté, et à mon avis tu n'auras plus le pb.
    A tous les coups, tu dois "eclater" une variable ailleurs ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de déclaration de tableaux
    Par BenjaminLustrement dans le forum C++/CLI
    Réponses: 6
    Dernier message: 23/06/2006, 16h21
  2. [C++] Probleme de declaration
    Par raboin dans le forum C++
    Réponses: 16
    Dernier message: 22/04/2006, 09h22
  3. [xml et xsd ] probleme de declaration
    Par TabrisLeFol dans le forum Valider
    Réponses: 3
    Dernier message: 02/11/2005, 10h22
  4. Réponses: 11
    Dernier message: 02/05/2005, 19h30
  5. [Traduction] probleme de declaration
    Par Mercilius dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2003, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo