Bonjour,
J'ai un code compilé avec gcc 4.41 dans lequel j'ai ecrit un control des erreurs via des exceptions de maniére à retrouver le chemin complet de fonction à fonction d'une exception initiale. Mais voila ca fonction bien mais par en 32 bits alors que la version 64bits fonctionne correctement. Ainsi, dans la exemple suivant la fonction qui génére une exception est bien interceptée en 64 bits mais étrangement pas en 32bis. Bon ce n'est pas vraiment clair ce que j'écrit, alors voici un exemple simple ci-dessou.
En fait je ne comprend pas ce qui peut différent entre les versions 32 et 64 bits.
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 // ma class Exception class Exception : public std::exception { public : std::string Message; Exception(std::string Mes) { Message=Mes; } Exception(const char *Mes) { Message=Mes; } virtual const char* what() const throw() { return(Message.c_str()); } virtual ~Exception() throw() { } }; // simple exemple void fonction_gener_execption() { throw Exception("Test"); } void main() { try { fonction_gener_execption(); } catch(Exception &e) { // inibition de l'exception } // en 32 bits le code plante à cause de l'exception alors qu'en 64bits elle est bien interceptée }
Partager