Tengo una aplicación C# que llama a una función en un dll C++. Esta función puede lanzar varias excepciones que hereda std::exception
. Actualmente cojo estas excepciones como esto:¿Cómo obtengo una descripción de error std :: exception cuando llamo a un dll C++ desde C#
try
{
//Call to C++ dll
}
catch (System.Exception exception)
{
//Some error handling code
}
Mi primera pregunta es la voluntad de todo el código de captura std::exception
? Mi segunda pregunta es cómo puedo recuperar la cadena std::exception::what
, si examino exception.Message
solo obtengo "El componente externo arrojó una excepción".
EDIT: La función en cuestión es de una manera no lograron DLL de C++, e importado como este en el clase C#:
[DllImport("SomeDLL.dll")]
public extern static void SomeFunction();
Hay un método ToString devuelve una representación de cadena de la excepción actual. http://msdn.microsoft.com/en-us/library/system.exception_members.aspx – DumbCoder
http://stackoverflow.com/questions/150544/can-you-catch-a-native-exception-inc-c- code/150596 # 150596 – celavek