Je suis en train de lire "Developer's Workshop to COM and ATL 3.0". Le chapitre 3 présente les GUID, le référencement et les comparaisons. Les pointeurs sont douloureux. Je pourrais utiliser un peu d'aide pour déchiffrer le REFGUID #define
(voir ci-dessous) et comment memcmp
dans IsEqualGUID
fonctionne contre les pointeurs.Comprendre le fonctionnement du référencement du pointeur
Étant donné:
typedef struct_GUID{ unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8]; } GUID;
Comment interpréter cette #define
:
#define REFGUID const GUID * const
Comment la &rguid1
adresse la variable entrant?
BOOL IsEqualGUID(REFGUID rguid1, REFGUID rguid2)
{
return !memcmp(&rguid1, &rguid2, sizeof(GUID));
}
Vous devriez en apprendre davantage sur les pointeurs en essayant de comprendre une bibliothèque compliquée comme ATL. – jmucchiello
Merci pour le commentaire jmucchiello. Si vous voyez la réponse de Preet ci-dessous, il apparaît que le code dans le livre est incorrect. C'est ce qui m'a jeté.Bien que je ne sois pas un expert en pointeurs, je ne me crois pas non plus un débutant. Le code incorrect du livre est ce qui m'a jeté. – BigBrother