Déclaration et utilisation de variable globale
Bonjour à tous,
Je développe avec un PC équipe de Windows XP SP3 et de Visual C++ 6.0
J'ai du reprendre un projet existant fait par un de mes anciens collègue et je me retrouve face à un problème de déclaration de variable globale ...
Voici la présentation de mon code :
CLASSE 1 : (dans le fichier TTest.cpp)
Code:
1 2 3 4
| void TTest::OnBtnStopTimer()
{
int i_valCompteur = 90;
} |
CLASSE 2 : (dans le ficher Display.cpp)
Code:
1 2 3 4
| void CDisplay::DisplayAxe(CDC &memDC)
{
szTmp = DblToStr(dNum);
} |
FONCTION DdlToStr : (dans le fichier Display.cpp)
Code:
1 2 3 4 5 6 7 8 9
| CString CDisplay::DblToStr(double num)
{
CString szTmp;
// J'AIMERAIS RECUPERER LE CONTENU DE LA VARIABLE "i_valCompteur " ICI POUR L'UTILISER COMME SUIT :
// szTmp.Format( i_valCompteur , num); A LA PLACE DE LA LIGNE CI-DESSOUS
szTmp.Format("%.6f", num);
return (szTmp);
} |
J'ai vu dans la FAQ à ce lien : http://dotnet.developpez.com/faq/cpp...ariableGlobale comment il fallait faire pour déclarer une classe GLOBALE.
Je me suis donc exécuté comme suit :
CLASSE 1 : (dans le fichier TTest.cpp)
Code:
1 2 3 4
| void TTest::OnBtnStopTimer()
{
VariableGlobale::i_nbrCaracResol = 1;
} |
CLASSE 2 DECLARATION GLOBALE : (dans le fichier TTest.cpp)
Code:
1 2 3
| class VariableGlobale{
public:static int i_nbrCaracResol;
}; |
CLASSE 3 : (dans le ficher Display.cpp)
Code:
1 2 3 4
| void CDisplay::DisplayAxe(CDC &memDC)
{
szTmp = DblToStr(dNum);
} |
FONCTION DdlToStr : (dans le fichier Display.cpp)
Code:
1 2 3 4 5 6 7 8 9
| CString CDisplay::DblToStr(double num)
{
CString szTmp;
Int test_variable;
test_variable = VariableGlobale::i_nbrCaracResol;
szTmp.Format("%.6f", num);
return (szTmp);
} |
Voici l'erreur que mon compiltateur me retourne :
Citation:
C:\...\Display.cpp(96) : error C2653: 'VariableGlobale' : is not a class or namespace name
C:\...\\Display.cpp(97) : error C2065: 'i_nbrCaracResol' : undeclared identifier
TTest.cpp
Je ne comprends pas bien pourquoi il ne reconnait pas ma variable qui est pourtant bien "PUBLIC" ...
Est-ce que vous auriez une petite idée pour me dépanner un peu ? ...
Merci d'avance pour vos réponses ... et salutations à vous tous ...