micflor
Messages postés14Date d'inscriptionmercredi 22 février 2006StatutMembreDernière intervention 3 mars 2013
-
10 mars 2006 à 14:32
micflor
Messages postés14Date d'inscriptionmercredi 22 février 2006StatutMembreDerniè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.
Galmiza
Messages postés573Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention 9 avril 20081 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.
micflor
Messages postés14Date d'inscriptionmercredi 22 février 2006StatutMembreDerniè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+