OVH Cloud OVH Cloud

Question de débutant

3 réponses
Avatar
Olivier
Bonjour

G construit une application de type document/vue en MFC.
Représentation de positions géographiques.
La classe View gère une boite de dialogue de changement d'échelle
d'affichage.
G une classe de type CObject qui gère la sérialisation et l'affichage.
J'aimerais que le changement d'échelle dans la classe View me change
également la valeur d'une variable dans la classe CObject...???
Je bloque...

Cordialement,

Olivier

3 réponses

Avatar
Olivier
Dans ma classe de vue quand je change l'échelle, g le code suivant :
CSite *lptSite;
lptSite->SetEchelle(m_iEchelle);

A la compilation le message suivant :
warning C4700: local variable 'lptSite' used without having been initialized

Dans ma classe CSite g le code suivant :
void CSite::SetEchelle(UINT Echelle)
{
m_Echelle = Echelle;
}

Et lorsque j'exécute le programme et que je veux changer l'échelle, g le
message suivant :
L'instruction à "0x00402163" emploie l'adresse mémoire "0xcccccce4". La
mémoire ne peut pas être éwritten".

Help......


"Olivier" a écrit dans le message de
news:427658ce$0$26063$
Bonjour

G construit une application de type document/vue en MFC.
Représentation de positions géographiques.
La classe View gère une boite de dialogue de changement d'échelle
d'affichage.
G une classe de type CObject qui gère la sérialisation et l'affichage.
J'aimerais que le changement d'échelle dans la classe View me change
également la valeur d'une variable dans la classe CObject...???
Je bloque...

Cordialement,

Olivier




Avatar
Olivier
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

Cordialement,

Olivier
Avatar
Vincent Burel
"Olivier" wrote in message
news:427aa775$0$26064$
Dans ma classe de vue quand je change l'échelle, g le code suivant :
CSite *lptSite;
lptSite->SetEchelle(m_iEchelle);

A la compilation le message suivant :
warning C4700: local variable 'lptSite' used without having been


initialized

lptSite est un pointeur, qui doit pointer sur un espace mémoire , en
l'occurence un espace mémoire représentant une classe CSite. Vous vous ne
déclarez que le pointeur. Qui en mode debug peut avoir une valeur générique
style 0xCCCCCCCC correspondant à une adresse invalide... et en mode release
peut contenir n'importe quoi.

Et lorsque j'exécute le programme et que je veux changer l'échelle, g le
message suivant :
L'instruction à "0x00402163" emploie l'adresse mémoire "0xcccccce4". La
mémoire ne peut pas être éwritten".



bien sur, puisque votre pointeur n'est pas initialisé. et cette adresse
0xcccccce4 a très peu de chance d'être valide donc ca crache. Si vous voulez
que cela fonctionne , déclarez comme il faut votre objet CSite, ou
initialiser correctement votre pointeur d'objet...

c'est du C++, normalement c'est pas pour ce forum.

VB