C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Erreur d'application

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Olivier
Guest





PostPosted: Fri May 06, 2005 3:44 pm    Post subject: Erreur d'application Reply with quote



Bonjour,

Je suis en train de développer une application avec Visual C++ et lorsque ma
classe View va modifier la valeur d'une variable dans une classe CObject
j'ai le message d'erreur suivant :

L'instruction à "0x00402163" emploie l'adresse mémoire "0xcccccce4". La
mémoire ne peut pas être "written".

Kelkun a une idée de ce que ça peut être ?

Cordialement,

Olivier


Back to top
Fabien LE LEZ
Guest





PostPosted: Fri May 06, 2005 4:26 pm    Post subject: Re: Erreur d'application Reply with quote



On Fri, 6 May 2005 17:44:04 +0200, "Olivier" <ope (AT) club-internet (DOT) fr>:

Quote:
L'instruction à "0x00402163" emploie l'adresse mémoire "0xcccccce4". La
mémoire ne peut pas être "written".

À vue de nez, l'erreur peut provenir d'à peu près n'importe où. Essaie
d'isoler le code qui déconne ; si ça vient d'un truc spécifique
Windows (comme le début de ton message semble le suggérer), cf
fr.comp.os.ms-windows.programmation.

Quote:
Kelkun

Ça s'écrit "quelqu'un".

--
Le grand site de la philosophie animale : <http://perso.edulang.com/philo/>

Back to top
Pierre THIERRY
Guest





PostPosted: Fri May 06, 2005 6:17 pm    Post subject: Re: Erreur d'application Reply with quote



Le Fri, 06 May 2005 17:44:04 +0200, Olivier a écrit :
Quote:
j'ai le message d'erreur suivant :

L'instruction à "0x00402163" emploie l'adresse mémoire "0xcccccce4".
La mémoire ne peut pas être "written".

Kelkun a une idée de ce que ça peut être ?

Un message d'erreur complètement naze ?

Naïvement,
Nowhere man
--
[email]nowhere.man (AT) levallois (DOT) eu.org[/email]
OpenPGP 0xD9D50D8A


Back to top
Olivier
Guest





PostPosted: Sat May 07, 2005 6:12 am    Post subject: Re: Erreur d'application Reply with quote

J'ai isolé le code qui plante de la maniere suivante :

void CSite::SetEchelle(int Echelle)
{
CString strTxt;
strTxt.Format("Echelle = %d",Echelle);
AfxMessageBox(strTxt);

m_iEchelle = Echelle;

strTxt.Format("Echelle 2 = %d",Echelle);
AfxMessageBox(strTxt);
}

Au changement d'échelle, j'ai bien le premier MessageBox qui s'affiche avec
la bonne valeur, mais dès que je clique sur OK -> plantage.
Donc ce qui fait planter c'est : m_iEchelle = Echelle;

Je ne comprends pas...


"Fabien LE LEZ" <gramster (AT) gramster (DOT) com> a écrit dans le message de
news:aj6n71ln6pdtc7pcinh88ttaqvmnujsafg (AT) 4ax (DOT) com...
Quote:
On Fri, 6 May 2005 17:44:04 +0200, "Olivier" <ope (AT) club-internet (DOT) fr>:

L'instruction à "0x00402163" emploie l'adresse mémoire "0xcccccce4". La
mémoire ne peut pas être "written".

À vue de nez, l'erreur peut provenir d'à peu près n'importe où. Essaie
d'isoler le code qui déconne ; si ça vient d'un truc spécifique
Windows (comme le début de ton message semble le suggérer), cf
fr.comp.os.ms-windows.programmation.

Kelkun

Ça s'écrit "quelqu'un".

--
Le grand site de la philosophie animale :
http://perso.edulang.com/philo/




Back to top
Olivier
Guest





PostPosted: Sat May 07, 2005 6:45 am    Post subject: Re: Erreur d'application Reply with quote

Je vien d'essayer un autre truc.
En fait si dans ma fonction "void CSite::SetEchelle(int Echelle)" je met
"m_iEchelle = 0;" ça plante mais si je met "m_iEchelle = 0;" dans la
fonction "void CSite::Draw(CDC *pDC)" là tout se passe bien...
Une explication ?

"Olivier" <ope (AT) club-internet (DOT) fr> a écrit dans le message de
news:427c5ba3$0$26072$7a628cd7 (AT) news (DOT) club-internet.fr...
Quote:
J'ai isolé le code qui plante de la maniere suivante :

void CSite::SetEchelle(int Echelle)
{
CString strTxt;
strTxt.Format("Echelle = %d",Echelle);
AfxMessageBox(strTxt);

m_iEchelle = Echelle;

strTxt.Format("Echelle 2 = %d",Echelle);
AfxMessageBox(strTxt);
}

Au changement d'échelle, j'ai bien le premier MessageBox qui s'affiche
avec
la bonne valeur, mais dès que je clique sur OK -> plantage.
Donc ce qui fait planter c'est : m_iEchelle = Echelle;

Je ne comprends pas...


"Fabien LE LEZ" <gramster (AT) gramster (DOT) com> a écrit dans le message de
news:aj6n71ln6pdtc7pcinh88ttaqvmnujsafg (AT) 4ax (DOT) com...
On Fri, 6 May 2005 17:44:04 +0200, "Olivier" <ope (AT) club-internet (DOT) fr>:

L'instruction à "0x00402163" emploie l'adresse mémoire "0xcccccce4". La
mémoire ne peut pas être "written".

À vue de nez, l'erreur peut provenir d'à peu près n'importe où. Essaie
d'isoler le code qui déconne ; si ça vient d'un truc spécifique
Windows (comme le début de ton message semble le suggérer), cf
fr.comp.os.ms-windows.programmation.

Kelkun

Ça s'écrit "quelqu'un".

--
Le grand site de la philosophie animale :
http://perso.edulang.com/philo/





Back to top
Serge Paccalin
Guest





PostPosted: Sat May 07, 2005 8:19 am    Post subject: Re: Erreur d'application Reply with quote

Le samedi 7 mai 2005 à 08:12:24, Olivier a écrit dans fr.comp.lang.c++ :

Quote:
L'instruction à "0x00402163" emploie l'adresse mémoire "0xcccccce4". La
mémoire ne peut pas être "written".

J'ai isolé le code qui plante de la maniere suivante :

void CSite::SetEchelle(int Echelle)
{
CString strTxt;
strTxt.Format("Echelle = %d",Echelle);
AfxMessageBox(strTxt);

m_iEchelle = Echelle;

strTxt.Format("Echelle 2 = %d",Echelle);
AfxMessageBox(strTxt);
}

Au changement d'échelle, j'ai bien le premier MessageBox qui s'affiche avec
la bonne valeur, mais dès que je clique sur OK -> plantage.
Donc ce qui fait planter c'est : m_iEchelle = Echelle;

Je ne comprends pas...

Une note en passant : au cas où tu n'aurais pas remarqué, les autres
répondent en-dessous, en supprimant ce qui ne sert pas ; tu es prié d'en
faire autant. D'avance merci.

Si ça plante au moment de l'affectation d'une donnée membre, il est
probable que l'object concerné n'est pas valide. Le problème est sans
doute avant l'appel à SetEchelle. Par exemple :

CSite *pSite; // pas initialisé
pSite->SetEchelle(42); // A fait boum le programme

Ou encore :

CSite *pSite = NULL;

{
CSite Site; // Construction
pSite = &Site; // Affectation
} // Destruction

pSite->SetEchelle(42); // A fait boum le programme

A priori, une valeur comme 0xcccccce4, ça me fait penser au pointeur pas
initialisé. Avec Visual C++ en mode débug, les variables non
initialisées sont remplies de 0xcc (alors que les blocs mémoire sont
remplis de 0xcd, et les objets détruits, remplis de 0xfeee). Ta donnée
membre m_iEchelle est à l'offset 0x18 dans ta classe CSite.

--
___________ 07/05/2005 10:07:28
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763

Back to top
Yalbrieux
Guest





PostPosted: Sat May 07, 2005 12:41 pm    Post subject: Re: Erreur d'application Reply with quote

Bonjour,
En supposant m_iEchelle convenablement déclaré dans l'entête (oui ?),
si vous appelez la méthode SetEchelle( ) avant la construction de CSite ça
plante.
Si vous passez par Draw c'est que vous avez construit et ça ne plante pas.
J'ai bon ?
Cordialement
Yves

Back to top
Olivier
Guest





PostPosted: Sun May 08, 2005 9:35 am    Post subject: Re: Erreur d'application Reply with quote

J'ai essayé en créant un pointeur sur ma classe CSite dans le fichier header
de ma classe View :
private:
CSite* m_pSite;

Puis au changement d'échelle j'ai mis :
if (m_pSite)
m_pSite->SetEchelle(m_iEchelle);

Et toujours le même message :
L'instruction à "0x0040200e" emploie l'adresse mémoire "0xcdcdcde5". La
mémoire ne peut être "written".

C'est un truc de fou...


Back to top
Vincent Lascaux
Guest





PostPosted: Sun May 08, 2005 9:44 am    Post subject: Re: Erreur d'application Reply with quote

Quote:
C'est un truc de fou...

Poste un code minimal executable (avec une fonction main et tout) qui
plante...

--
Vincent



Back to top
Yalbrieux
Guest





PostPosted: Sun May 08, 2005 4:26 pm    Post subject: Re: Erreur d'application Reply with quote


Bonsoir,

[...]
Quote:
CSite* m_pSite;
[...]
if (m_pSite)
m_pSite->SetEchelle(m_iEchelle);

C'est ce dont je me doutais.
Après déclaration de votre pointeur ajoutez :
m_pSite=new CSite ; // pour construire un objet CSite
Ca devrait mieux aller :)

Et n'oubliez pas le
delete m_pSite ; // quand il n'y en a plus besoin

Cordialement
Yves


Back to top
Olivier
Guest





PostPosted: Sun May 08, 2005 7:12 pm    Post subject: Re: Erreur d'application Reply with quote

Super merci, ça marche...


Back to top
Olivier
Guest





PostPosted: Mon May 09, 2005 5:03 pm    Post subject: Re: Erreur d'application Reply with quote

Fausse joie... Ca ne marche pas...
Si je met ça dans "void CSite::Draw(CDC *pDC)"

CString strTxt;
strTxt.Format("Echelle = %d",m_iEchelle);
AfxMessageBox(strTxt);

et que je change l'échelle qui devrait être 0,1 ou 2, elle est et reste
à -842150451.....

:-(



Back to top
Yalbrieux
Guest





PostPosted: Mon May 09, 2005 5:10 pm    Post subject: Re: Erreur d'application Reply with quote

Allez, courage.
On peut trouver un bogue de codage mais pas d'algo.
C'est plus le même forum.
cordialement
Yves

Back to top
Olivier
Guest





PostPosted: Tue May 10, 2005 2:29 pm    Post subject: Re: Erreur d'application Reply with quote

Bonjour,

Je recherche une personne pouvant tester mon source en Visual C++ 6 et MFC
et éventuellement me dire d'ou vient mon erreur...
Mon email est [email]ope (AT) club-internet (DOT) fr[/email]

Cordialement,

Olivier


Back to top
Pierre THIERRY
Guest





PostPosted: Wed May 11, 2005 1:38 am    Post subject: Re: Erreur d'application Reply with quote

Le Tue, 10 May 2005 16:29:09 +0200, Olivier a écrit :
Quote:
Je recherche une personne pouvant tester mon source en Visual C++ 6 et
MFC

fr.comp.os.ms-windows.program

HTH & HAND
--
[email]nowhere.man (AT) levallois (DOT) eu.org[/email]
OpenPGP 0xD9D50D8A


Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.