Bonjour,

Pour l'instant la seule m�thode que j'ai trouv� pour r�cup�rer mes exceptions stl natives c'est de les catcher en c++/cli et de lancer une nouvelle exception .net .

1�re m�thode que j'ai impl�ment� : appeler le std::exception::what() pour r�cup�rer le message et le mettre dans une System::Exception
Exemple :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
 
try
{
   //Mon truc qui lance une std::exception
}
catch(const std::exception & ex)
{
   throw gcnew System::Exception(gcnew System::String(ex.what()));
}
Autre solution, qui pour l'instant revient au m�me : j'ai cr�e une nouvelle classe manag�e ma_lib::managed_std_exeption d�rivant de System::Exception, dont un constructeur prend un std::exception en param�tre. L'utilisation donne :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
 
try
{
   //Mon truc qui lance une std::exception
}
catch(const std::exception & ex)
{
   throw gcnew ma_lib::managed_std_exeption(ex);
}
Pour l'instant, il n'y a pas d'int�r�t � faire l'un plut�t que l'autre, les deux fonctionnent.
(En attendant, je ne cherche pas � faire mieux qu'une exception qui contient un message.)

Je suis dans un cadre ou un projet C# appelle du code C++ natif en passant par du manag�. Je veux que les exceptions natives soient transform�e en exceptions manag�es.

La premi�re solution est d'encadrer dans mes classes manag�es tous les appels natifs par un try catch qui relance une exception .net

Mais si il y avait une possibilit� de faire un op�rateur de cast qui m'�vite �a, �a serait super cool. Une id�e ?

S.