Variables globales ?

cs_tintin72 Messages postés 122 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 22 juillet 2006 - 31 janv. 2006 à 18:45
Dvdmizo Messages postés 74 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 3 mai 2006 - 1 févr. 2006 à 17:18
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

cs_TeniX Messages postés 118 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 11 décembre 2011 2
31 janv. 2006 à 19:22
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.

++
0
cs_tintin72 Messages postés 122 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 22 juillet 2006
31 janv. 2006 à 20:25
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
0
cs_TeniX Messages postés 118 Date d'inscription mercredi 24 décembre 2003 Statut Membre Dernière intervention 11 décembre 2011 2
31 janv. 2006 à 20:37
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.
0
cs_tintin72 Messages postés 122 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 22 juillet 2006
31 janv. 2006 à 20:47
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dvdmizo Messages postés 74 Date d'inscription jeudi 6 mars 2003 Statut Membre Dernière intervention 3 mai 2006
1 févr. 2006 à 17:18
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
0
Rejoignez-nous