Error: field address (column 16) has changed!



  • Was sagt mir dieser Fehler? 😕
    Ich habe gerade die Get und Set Methoden für den angemeckerten CString geändert.

    Statt Freitext stehen da nun Nullen und Einsen drin, weil damit Checkboxen repräsentiert werden.

    Es ist immer noch ein String. Was passiert da?
    Es scheint einwandfrei zu schreiben, denn wenn ich das Programm nach dem Absturz der auf den ASSERT folgt neu starte, stehen die Werte im Dialog. 😕

    Ich konnte es auf die Set-Funktion eingrenzen.
    So funktioniert es (ist aber ziemlich sinnlos):

    m_strProbleme = "01001001011";
    

    und so funktioniert es nicht:

    m_strProbleme.Format(_T("%d%d%d%d%d%d%d%d%d%d%d"), 
    								 f_fProb1 ? 1 : 0, 
    								 f_fProb2 ? 1 : 0, 
    								 f_fProb3 ? 1 : 0, 
    								 f_fProb4 ? 1 : 0,
    								 f_fProb5 ? 1 : 0, 
    								 f_fProb6 ? 1 : 0, 
    								 f_fProb7 ? 1 : 0, 
    								 f_fProb8 ? 1 : 0, 
    								 f_fProb9 ? 1 : 0, 
    								 f_fProb10 ? 1 : 0, 
    								 f_fProb11 ? 1 : 0);
    

    So funktioniert es aber wieder:

    CString strDummy;
    	strDummy.Format(_T("%d%d%d%d%d%d%d%d%d%d%d"), 
    								 f_fProb1 ? 1 : 0, 
    								 f_fProb2 ? 1 : 0, 
    								 f_fProb3 ? 1 : 0, 
    								 f_fProb4 ? 1 : 0,
    								 f_fProb5 ? 1 : 0, 
    								 f_fProb6 ? 1 : 0, 
    								 f_fProb7 ? 1 : 0, 
    								 f_fProb8 ? 1 : 0, 
    								 f_fProb9 ? 1 : 0, 
    								 f_fProb10 ? 1 : 0, 
    								 f_fProb11 ? 1 : 0);
    	m_strProbleme = strDummy;
    

    Also, das Problem habe ich jetzt gelöst, aber mich interessiert trotzdem, was die Meldung bedeutet. 😕


Anmelden zum Antworten