Bonjour,
On a un problème avec le dessin d'éléments.
Plus spécifiquement, avec l'appel de fonctions de dessin en dehors de la fonction on_draw, en utilisant le pointeur ptcr sur cr.
Le message erreur ci-dessous s'affiche- auriez-vous auriez-vous des conseils pour cette situation?
Il s'agit d'une question assez vague, mais nous ne savons pas exactement quels éléments du programmes sont concernés, étant donné que l'inclusion des fichiers etc.. à l'air correcte.
Merci
Re: on_draw: erreur (unhandled exception in signal handler)
est-ce bien (*ptcr) que vous affichez ou seulement ptcr ?
Re: on_draw: erreur (unhandled exception in signal handler)
Nous affichons seulement ptcr.
De plus,
Si on inclut un fichier de test par argument lors de l'ouverture du programme, on a une segmenation fault dans la même ligne ^.
Si on ouvre le programme, et qu'ensuite on Open un fichier test, on reçoit l'erreur décrite dans le premier post.
L'image ci-dessous montre ce qu'on reçoit lorsu'on essaie d'afficher (*ptcr).
Re: on_draw: erreur (unhandled exception in signal handler)
ptcr est un "pointeur sur cr" ; il vous manque une * à sa déclaration:
static const Cairo::RefPtr<Cairo::Context>* ptcr(nullptr);
il doit être initialisé avec l'adresse de cr:
ptcr = &cr ;
les détails sont dans le pdf du cours indiqué dans le message précédent.
Re: on_draw: erreur (unhandled exception in signal handler)
Merci pour la réponse.
Nous avions en effect déclaré le pointeur correctement :
static const Cairo::RefPtr<Cairo::Context>* ptcr(nullptr);.
Ce dernier message erreur apparait lorsqu'on essaie de faire: std::cout << (*ptcr) << std::endl;
On ne comprend pas pourquoi le message erreur semble manquer le * à la déclaration de ptcr.
Re: on_draw: erreur (unhandled exception in signal handler)
Hi,
do you ever write something to ptcr?
It is initialized as a nullptr, if you try to dereference that with *ptcr it will segfault.
Re: on_draw: erreur (unhandled exception in signal handler)
What you could do is:
Do a text search for "ptcr".
Find where you write a value to it:
ptcr = &cr;
print something to cout immediately before or after:
"now ptcr points to cr"
run your program again.
Make sure that you see that message before the program segfaults.
If there's a segfault without this message that should explain the problem.