[C++] Saloperie de pointeurs

Saloperie de pointeurs [C++] - Programmation

Marsh Posté le 24-06-2001 à 22:34:29    

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?

Reply

Marsh Posté le 24-06-2001 à 22:34:29   

Reply

Marsh Posté le 24-06-2001 à 22:44:37    

T'as oublié les "()"
 
Achète un bouquin sur le c++ parce que là tu marches par essai-erreur, ça a son charme mais ça permet pas d'avoir une vision globale et structurée du langage.

 

[edit]--Message édité par Verdoux--[/edit]

Reply

Marsh Posté le 24-06-2001 à 22:45:56    

Tain mais que je suis con desfois :D
 
Merci beaucoup beaucoup!!! ;)

Reply

Marsh Posté le 25-06-2001 à 00:09:32    

Sinon fais renvoyer des références à tes fonctions, ça évitera qu'elles rajoutent des niveaux de pointeur, et tu pourra programmer comme avant (ôôôôôôôôhhhh, la programmâtion, c'était mieux âvant ! :D).

Reply

Marsh Posté le 25-06-2001 à 04:05:20    

->classe.membre

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed