malbackt
Messages postés88Date d'inscriptionmardi 25 mars 2008StatutMembreDernière intervention 3 juin 2009
-
11 juin 2008 à 16:10
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
15 juin 2008 à 17:20
Bonjour à tous;
j'ai réalisé un jeu en opengl sous DEV C++ et ça marchait très très bien, mais tout à coup quand j'ai voulu l'exécuter il m'a affiché le message suivant :
l'exception division par zero en virgule flottante 0xc000008e) s'est produite dans l'application à l'emplacement 0x08c05010
aidez moi à résoudre ce problème SVP c'est urgent.
cs_laurent1024
Messages postés987Date d'inscriptionmardi 31 mai 2005StatutMembreDernière intervention30 août 201225 11 juin 2008 à 16:28
Bonjour.
Quand tu fait une division, il faut toujours vérifier que le diviseur ne soit pas nul.
Par contre je ne sais pas pourquoi tu n'avais pas l'erreur avant si tu n'as pas fait de modification.
Vu que tu utilise de l'openGL, l'erreur peut venir d'un changement d'angle de caméra.
Cdt
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 15 juin 2008 à 17:20
Salut,
A la tête du message d'erreur, ce n'est pas un problème de carte graphique.
Une carte graphique qui fait une division par zéro, dans le meilleur des cas, ça ne fait rien, sinon ça fait un artefact, et au pire ça fait écran bleu ou reboot.
Tout sauf une exception.
Ensuite, là tu à une adresse -> c'est pas possible d'avoir une adresse dans le cas d'une carte graphique.
C'est pas la GPU qui est en cause, c'est la FPU.
Mais bon, après, c'est peut être dans OpenGL qu'elle se fait ta division...
L'adresse 0x08c05010 ou a eu lieu l'exception peut te donner une vague indication : c'est l'adresse de l'instruction qui à planter. Si tu regarde l'assembleur, tu tombera sûrement sur une instruction commençant par F, FDIV ou autre. Tu dois pouvoir déterminer le module dans lequel ça à planté (ton exe, une dll quelconque...).
Essai aussi de configurer ton débogueur pour qu'il break en cas d'exception non gérée.