Título: Ayuda, Programa C++ no atrapa ninguna excepción Publicado por: johnf9896 en 19 Enero 2015, 04:45 am Estoy desarrollando un juego, bien una biblioteca para hacer juegos basada en SFML y un juego basado en esa biblioteca.
El problema es que cuando el programa lanza una excepción el programa se crashea aunque una bloques try con catchs que pueden atrapar la excepción. Incluso si hago esto Código
o esto Código
el programa se crashea. No entiendo porque sucede esto. Además, esto solo pasa en mi programa, cuando escribo los ejemplos de arriba en un simple archivo .cpp y lo compilo, el programa atrapa las excepciones normalmente como de be ser. Estoy usando Code::Blocks y Netbeans para escribir la biblioteca y el programa. Tengo proyectos en ambos IDEs. Yo uso el compilador MinGW versión 4.8.1 Espero que alguien tenga alguna idea de porqué esto sucede y tenga alguna solución al problema. Gracias por leer y responder. Título: Re: Ayuda, Programa C++ no atrapa ninguna excepción Publicado por: ivancea96 en 19 Enero 2015, 14:24 pm Código
Ese código, ¿Te muestra los mensajes? Título: Re: Ayuda, Programa C++ no atrapa ninguna excepción Publicado por: johnf9896 en 19 Enero 2015, 14:30 pm En un .cpp aparte sí pero en mi programa no
Título: Re: Ayuda, Programa C++ no atrapa ninguna excepción Publicado por: ivancea96 en 19 Enero 2015, 16:08 pm Más detalles. ¿Cómo que "en un .cpp aparte" sí? ¿Qué tiene tu programa?
Título: Re: Ayuda, Programa C++ no atrapa ninguna excepción Publicado por: johnf9896 en 24 Enero 2015, 15:51 pm Me refiero a que si creo un nuevo .cpp y lo compilo con ese código, el código funciona pero pongo ese código en mi proyecto y lo compilo el programa no atrapa las excepciones y se crashea
Título: Re: Ayuda, Programa C++ no atrapa ninguna excepción Publicado por: johnf9896 en 24 Enero 2015, 22:19 pm Ya he solucionado el problema.
Tenía la idea de que lo que causaba ese problema era una opción que se pasaba al compilador. Así que busqué en la página gcc.gnu.org la lista de todas las opciones que se podían pasar y leyendo encontré que si se quería pasar excepciones a travez de varias bibliotecas compartidas (dlls) no debía usar en el linker la opción -static-libgcc ni -static-libstdc++ porque éstas bloqueaban las excepciones. Así que solo quité las opciones del linker y listo asunto solucionado. Gracias invancea96 por las respuestas. |