Directx blt dans une methode de classe

micflor Messages postés 14 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 3 mars 2013 - 10 mars 2006 à 14:32
micflor Messages postés 14 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 3 mars 2013 - 13 mars 2006 à 08:57
bonjour,


le programme est sous c++builder4


je n'arrive pas à effectuer un blt dans un méthode de classe:


exemple:


//pDDSSec est le pointeur sur le backbuffer, rectrouleau et rectdigit des RECT et PDDSrouleau le pointeur sur la surface contenant l'image depuis laquelle je copie un rectangle.


ceci fonctionne normallement dans le programme principal.


pDDSSec->Blt(&rectrouleau,pDDSrouleau,&rectdigit,NULL,NULL);//charge image dans backbuffer


//dans la methode de classe qui affiche j'écris :


pDDSSec->Blt(&mbrectrouleau,pDDSrouleau,&mbrectdigit,NULL,NULL);//charge image dans backbuffer


la fonction ne s'exécute paset j'obtiens une erreur "ecriture à ladressse 0x0000000". Or , la seule différence est que j'utilise des rectangles membres de la classe (mbrectdigit et mbrectrouleau). en exécutant pas à pas, il semble pourtant que les données correctes sont dans les arguments transmis.


pouvez-vous m'aider?


merci

2 réponses

Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
11 mars 2006 à 22:53
Tu as une adresse nulle, donc bug assuré.
Met un breakpoint à la ligne en question et vérifie que les paramètres donnés à la fonctions sont valides (pas NULL pour les pointeurs).

Si tu as un pointeur nul, alors il y a auparavant eu un echec de création d'objet, soit pour pDDSSec que tu as oublié de passer à ta classe, soit pDDSrouleau mal crée.

@+
0
micflor Messages postés 14 Date d'inscription mercredi 22 février 2006 Statut Membre Dernière intervention 3 mars 2013
13 mars 2006 à 08:57
merci de ta réponse, j'ai vérifié, et les pointeurs ne sont pas nule, ils pointent sur les mêmes adresses que dans le prog principal; je vais essayer de voir en désassemeblant cette partie du code.
merci
a+
0
Rejoignez-nous