Salut,
J'ai créé une bibliothèque de classes qui fonctionne bien... du moins tant qu'elle reste en statique.
Maintenant, j'aimerais donner la possibilité de la compiler sous la forme d'une bibliothèque partagée.
Les directives préprocesseurs semblent correctes et il m'est donc possible de créer une bibliothèque partagée ou une bibliothèque statique sur les différent OS testés (du moins, j'arrive à obtenir la dll, le so, et/ou le .a, selon le système).
Là où cela coince, c'est que cette bibliothèque est sensée lancer des exceptions qui doivent être récupérées par l'application qui l'utilise...
Tant que je travaille avec la bibliothèque statique, il n'y a aucun problème, mais dés que j'essaye de travailler avec la DLL, les exceptions restent bloquées au sein de celle-ci.
En effet, quand je crée un nouveau projet destiné à utiliser la dll, avec les bonnes caractéristiques et que j'écris le code tout simple
plutôt que de récupérer l'exception dans le catch, ainsi que je m'y serais attendu, j'obtiens le message de la mort:
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
mais qui est exactement le même message que si j'avais appelé la fonction en dehors de tout bloc try...catch.terminate called after throwing a instance of 'AlgoTrace::AlgoException'
what(): une exception
Ce qui me rassure déjà, c'est que l'exception est bien telle que je m'attendais à l'avoir... sauf que j'aurais cru la récupérer dans mon application
Quelqu'un aurait il donc une idée sur les paramètres à passer à Gcc (sous code::blocks) pour indiquer que les exceptions lancées par la DLL doivent en sortir

 

 
		
		 
         
 

 
			
			

 
  
  
 
 
			 
   
 



 
				 Dll compilée avec Code::Blocks: lancer exception et la récupérer dans l'application
 Dll compilée avec Code::Blocks: lancer exception et la récupérer dans l'application
				
 A méditer: La solution la plus simple est toujours la moins compliquée
A méditer: La solution la plus simple est toujours la moins compliquée Répondre avec citation
  Répondre avec citation 
   
 
			 
   ).
). ).
).
 Envoyé par Mat007
 Envoyé par Mat007
					

Partager