NetBeans Release-Fehler



  • Hallo zusammen,
    ich bin mit meinem Projekt von Eclipse auf NetBeans umgestiegen.
    Der Projektstand hat unter Eclipse (Qt/MinGW unter Windows7) sowohl im Debug-Modus als auch im Release-Modus wunderbar funktioniert.
    Bei NetBeans (auch Qt/MinGW) funktioniert der Projektstand im Debug-Modus wie unter Eclipse perfekt. Wenn ich jedoch die Release-Version ausführe erhalte ich eine Windows-Fehlermeldung: Programm funktioniert nicht mehr ... unter Programmdetails erhalte ich die Werte
    Ausnahmecode 40000015
    Ausnahmeoffset: 0002d741

    Folgender Code ist Bestandteil einer Schleife, die einige Male (9x) hintereinander mit verschiedenen Werten gefüllt ausgeführt wird. Der Abbruch erfolgt nach dem dritten Aufruf:

    void xx::setString(string _c) {
        char* c;
        c = const_cast<char*> (_c.c_str());
        fwrite(c, 1, strlen(c), out);
    }
    

    Meiner Vermutung nach müssten hier irgendwelche Compilereinstellungen getätigt werden, aber ich weiß nicht welche



  • Warum das wilde Rumgecaste? Warum nicht so?

    fwrite(_c.c_str(), 1, _c.size(), out);
    


  • Noch dazu sind Namen mit einem "_" oder "__" davor dem Compiler vorbehalten und sollten nicht verwendet werden.
    Und wie _matze sagte, Du brauchst das nicht casten, .c_str() ist doch bereits const char*.
    Eleganter wäre es übrigens das gleich mit einem ofstream zu lösen statt fwrite.
    rya.



  • Hallo zusammen,
    vielen Dank für die prompte Hilfe! Die Änderungen hab ich eingbracht, mit dem wilden herumgecaste habt Ihr natürlich recht! Ich bin da leider noch neu bei c/c++.
    Leider hat es jedoch nicht den gewünschten Erfolg gebracht. Wie gesagt, früher hat es perfekt funktioniert, der Compiler ist der selbe. Mir scheint, als ob er den ersten Schreibvorgang noch nicht abgeschlossen hat und sich mit dem nächsten dann "verschluckt". Ein sleep() hat aber auch nix gebracht.
    Vielen Dank für Eure Hilfe!
    Viele Grüße
    Stephan



  • Zeig am besten mal mehr Code, vielleicht kommen wir dann eher auf den Fehler.


Anmelden zum Antworten