Ca commence à m'énerver les pointeurs et autres joyeuseries...
Bon, pour faire un blit avec DirectDraw il faut lui indiquer deux pointeurs vers des RECT pour lui dire quelle partie affichée d'une surface et où l'afficher.
Bon, d'habitude je faisais simplement:
RECT rect;
rect.left = 0; rect.right= .... rect.bottom = 100;
lpSecondary->Blt(&rect, lpSurface, &rect, NULL, NULL);
Et c'était finis. Mais maintenant que j'ai essayé de stocké les RECT dans une class, il faut lui renvoyer un pointeur correctement et là est le problème.
Voilà la partie de ma class concernant les RECT:
class CStarship
{
RECT current;
RECT position;
public:
RECT* GetSrcRect() {return ¤t;}
RECT* GetDestRect() {return &position;}
};
Et puis je blittais de cette façon:
CStarship starship;
lpSecondary->Blt(starship.GetDestRect, lpSStarship, starship.GetSrcRect, NULL, NULL);
Mais la compilation veut pas se faire, VC++ me dit ça: 'Blt' : cannot convert parameter 1 from 'struct tagRECT *(void)' to 'struct tagRECT *'
Mais merde, c'est quoi la différence entre struc tagRECT *(void) et struct tagRECT *? Et surtout comment faire fonctionner ce binz?