[wx] Printf-Koriosität



  • Hallo,
    ich bin noch nicht allzu bewandert, was C++ bzw. wxWidgets angeht und stehe deshalb bei einem Fehler auf dem Schlauch. Hier erstmal der Codeauszug:

    wxString data, tmp;
    for(int k=0; k<7; k++){
    	if(macros[i].data_repeat[k] != 0){
    		data.Append(hex(macros[i].data_address[k]));
    		data.Append(wxT(" ["));
    
    		// *1
    		tmp.Printf("%d", macros[i].data_repeat[k]);
    		data.Append(tmp);
    		data.Append(wxT("x; "));
    
    		// *2
    		tmp.Printf("%d", (macros[i].data_delay[k] * 500));
    		data.Append(tmp);
    		data.Append(wxT("ms], "));
    	}
    }
    

    Das Ganze funktioniert so nicht, das Programm stürzt ab. Wenn ich jedoch die beiden Zeilen nach *1 ODER *2 rauskommentiere funktionierts. Nur beide zusammen gehen nicht! Sieht jemand den Fehler?

    mfG, Sven


  • Mod

    Würde eher zum << operator von wxString raten, als Printf.

    Ansonsten, was sagt der Debugger?



  • Hallo,

    wenn dich der Fehler interessiert, poste mal deine wx-Version und deinen Compiler, weiterhin ob du ein fertiges Paket genommen hast.

    Im wxWidgets-Revision Log sind jedenfalls ein paar heftige (geschlossene) Bugs von wxString::Printf zu finden, wenn du eine alte Version verwendest (2.6.x) , kann sowas schon der Grund sein.


Log in to reply