[Debutant] Nouvelle question sur les pointeurs
Bonjour,
je développe un client DCOM. Dans ce client, j'initialise une interface, puis j'appelle une méthode de cette interface. Cette méthode demande en paramètre un pointeur de pointeur et retourne une valeur hr de type HRESULT.
Je teste ensuite cette valeur avec la méthode SUCCEEDED(hr) pour savoir si ma fonction s'est bien déroulée.
TRUE est retournée en cas de succès et FALSE en cas d'échec.
Comme je le disais la méthode attend un pointeur de pointeur de type HRESULT qui est en fait un tableau de valeur HRESULT.
Code:
1 2
|
HRESULT fonctionDCOM(HRESULT** argument); |
Dans mon code, j'ai donc:
Code:
1 2 3 4 5 6 7
|
HRESULT** args;
hr=fonctionDCOM(args);
if SUCCEEDED(hr) {
//Reussite
}
else //Echec |
Avec ce bout de code la fonction échoue. Il n'y a pas d'erreur. Simplement SUCCEEDED(hr) retourne FALSE
Par contre, si je passe en paramètre un pointeur, cela fonctionne.
Code:
1 2 3 4 5 6 7
|
HRESULT *args;
hr=fonctionDCOM(&args);
if SUCCEEDED(hr) {
//Reussite
}
else //Echec |
Avec ce bout de code la fonction réussit.
SUCCEEDED(hr) retourne TRUE
Est-ce que quelqu'un a une explication ?
Cela vient certainement d'une incompréhension de ma part sur les pointeurs parce que selon moi, le résultat de mes deux bouts de code est le même. Non ?
Merci d'avance.
++