| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Mar 19 Jul, 2022 3:59 am Asunto: try - catch en el return de una función void |
|
|
Creé un dll que tiene una función que devuelve un AnsiString (uso BCB6) para la función del programa que lo llama. Si la cadena devuelta tiene más de siete bytes, se lanza una excepción y no entiendo por qué.
Y el problema se desencadena en la función, no en la DLL. Por ejemplo:
| Código: |
void __fastcall TForm1::Button4Click(TObject *Sender)
{
String s = ÚltimoSorteo(); // funcion dll
ShowMessage(s);
String f = ÚltimoSorteo();
String g = ÚltimoSorteo();
String h = ÚltimoSorteo();
ShowMessage(g);
// ...
// si no pongo el return, me salta la excepción en la salida de la función
// ...
try { return; } catch(...) {}; // ¡el error está aquí!
}
|
¿Alguien puede explicar por qué sucede esto?
Gracias. |
|
| Volver arriba |
|
 |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Mar 19 Jul, 2022 11:50 pm Asunto: |
|
|
Logré resolverlo cambiando AnsiString por char *
Funcionó, pero no entendí por qué con String daba un error. |
|
| Volver arriba |
|
 |
|