EConvertError/Exception verwenden



  • Hallo zusammen,

    ich arbeite mich zur Zeit in das BDS 2006 ein (C++), und komme jetzt an einer Stelle überhaupt nicht mehr weiter.
    Ich möchte einen AnsiString nach Double konvertieren und dabei die Exception auffangen, falls der String keine gültige Gleitkommazahl ist. Code-Schnipsel:

    // AnsiString str;
    try {
      Synma.setCos(str.ToDouble());
    } catch (EConvertError& e) {
      // bla...
    }
    

    Mein Problem ist der Compiler, er beschwert sich in der Zeile mit dem catch über "Typname unbekannt". Muss ich noch irgendeinen Header einbinden, um die Klasse bekannt zu machen? Warum bringt AnsiString diese Abhängigkeit nicht gleich mit?
    Wenn ich einfach ein #include <vcl> drüberschreibe, beschwert sich der Compiler über massenweise fehlende Kommata in einer (mir unbekannten) commctrl.hpp.

    Wenn ich statt EConvertError einfach nur Exception verwende, besteht das Problem trotzdem.

    Habe beim Projekterstellen den Haken bei "VCL verwenden" gesetzt. Die Klasse AnsiString z.B. kann ohne Probleme verwendet werden.

    Ich hoffe, jemand kann mir helfen.

    Danke im Voraus,
    thw



  • Hallo

    Wenn ich einfach ein #include <vcl> drüberschreibe, beschwert sich der Compiler über massenweise fehlende Kommata in einer (mir unbekannten) commctrl.hpp.

    Wenn dann müßte das auch so aussehen

    #include <vcl.h>
    

    Und das reicht bei mir auch aus um EConvertError zu benutzten.

    Laut BCB-Hilfe ist EConvertError in der Unit sysutils zu finden, also sollte auch das reichen

    #include <sysutils.hpp>
    

    bis bald
    akari



  • Vielen Dank, du hast mir sehr geholfen!

    Liebe Grüße,
    thw


Anmelden zum Antworten