Variables globales ?

Signaler
Messages postés
122
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
22 juillet 2006
-
Messages postés
74
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
3 mai 2006
-
Bonjour,


Dans mon application (écrite en C) j'ai un problème pour passer plusieurs handles à des fonctions.
En effet, j'utilise des fonctions Windows qui malheureusement ne me permettent pas de passer plusieurs handles en paramètres.
Je suis donc obligé de rendre ces handles globaux afin que ces fonctions puissent les récupérer.
Mais, j'ai souvent entendu dire que rendre des variables globales n'étaient pas trés recommandé ni trés sûr.
Cependant, dans mon cas est ce que j'ai vraiment le choix ?
Y a t-il un autre moyen pour rendre mon programme plus sûr ?


Merci

Tintin 72

5 réponses

Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

Salut pour passer tes Handle tu fait par exemple:


fonction1()
{
HWND monhandle;
fonction2(monhandle);
.....
}

fonction2(HWND handle)
{
handle // = monhandle
}

je c'est pas si c'était vraiment ça le probleme et si sa répondra à ta question.

sinon pour mieu proteger tes variable tu peux utilisé des classes.

++
Messages postés
122
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
22 juillet 2006

Merci pour ta réponse mais, pour reprendre ton exemple mon pb est le suivant:

maFonction()
{
HANDLE1 monhandle1;
HANDLE2 monhandle2;

fonctionWindows(handle); //Comment passer les 2 handles puisque la fonction
//Windows ne prend qu'un seul handle en paramètre ?
}

->sinon pour mieu proteger tes variable tu peux utilisé des classes.

Oui je sais mais en C++, mon programme est écrit en C.

Tintin 72
Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

Sa depend le genre de fonction.

//Windows ne prend qu'un seul handle en paramètre ?

si t'as fonction ne prend q'un handle en paramètre c'est quelle à besoin que d'un param spécfique à ta fonction.

faudrai voir ce que serait HANDLE1 et HANDLE2 par exemple et la fonction que tu veux utiliser.
Messages postés
122
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
22 juillet 2006

HANDLE1 et HANDLE2 sont des pointeurs sur des structures que j'ai écrite.


La fonction Windows est une fonction de rappel (CALLBACK) , elle n'est pas spécifique à une tache particulière, c'est à l'utilisateur de définir exactement ce qu'elle doit faire.

Tintin 72
Messages postés
74
Date d'inscription
jeudi 6 mars 2003
Statut
Membre
Dernière intervention
3 mai 2006

salut,



je sais pas si c'est possible mais tu pourrais créer une structure qui
contriendrait autant de "handle" (ou d'autres variables que tu le
souhaiterais) et que tu passerais à ta fonction ...

c'est juste une idée...

DvdMizo