Was ist bitte an diesem Code Falsch?



  • void __fastcall TfrmHaupt::SaveDateiName(AnsiString FileName)
    {
    char *Puffer;
    sDateiName = FileName;
    Puffer = new char[sDateiName.Length() + SpeicherTitel.Length() + 7];
    sprintf(Puffer, "%s - [%s]", SpeicherTitel.c_str(),FileName.c_str());
    Caption = (AnsiString)Puffer;
    delete Puffer;
    }

    bitte hiflt mir ich bin am verzweifeln



  • Was sagt denn dein Compiler dazu? Normalerweise kann man aus dessen Fehlermeldungen nicht nur ablesen, daß man etwas falsch gemacht hat, sondern auch genau was und wo.

    (auf Anhieb: sDateiName, SpeicherTitel und Caption sind nicht bekannt (und das erste passt noch nichtmal in dein Namensschema). Und in der letzten Zeile fehlt ein [] nach dem delete )



  • [C++ Fehler] U_texteditor.cpp(88): E2268 Aufruf der undefinierten Funktion 'sprintf'

    das ist der fehler der ausgegeben wird



  • Du hast wohl vergessen stdio.h zu inkludieren!?



  • jetzt klappt soweit alles danke schön



  • Hallo

    Natürlich könntest du das ganze auch durch eine einzige Zeile ersetzen...

    void __fastcall TfrmHaupt::SaveDateiName(AnsiString FileName)
    {
      // sDateiName = FileName; - ist vielleicht auch gar nicht notwendig
      Caption = SpeicherTitel + " - [" + FileName + "]";
    }
    

    Bitte merken :
    * Im Builder die reinen C-Strings nur nutzen wenn es nicht anders geht. Die VCL-String-Klasse ist viel angenehmer und sicherer
    * Bitte hier im Forum für das Posten von Quellcode die Code-Tags benutzen. sfds

    bis bald
    akari


Anmelden zum Antworten