funktion wird nicht aufgerufen....



  • hallo,

    ich habe folgendes Problem. Mein Programm springt nicht in die Funktion DrawPoints. Es läuft durch die if-Schleife aber springt dann nicht in die Funktion DrawPoints. Kann mir vielleicht jemand nen tip geben, wora das liegen könnte?

    gruß



  • wie wärs mit quellcode?

    sonst hilft nur die kristallkugel (oder der debugger *g)



  • ups,

    short x_koor, y_koor, art;
    	short In= 0;
    	CFile file("vorgabe.txt",CFile::modeRead);
    	char *string = new char[file.GetLength()];
    	char *token;
       	string[file.GetLength()] = '\0';
    	file.Read(string,strlen(string));
    	file.Close();                       // Textdatei schließen
    
    	// Hier wird die Funktion zum Löschen der Endteilnehmer-Liste aufgerufen
    	DelEndtListe();
        // Hier wird die Funktion zum Löschen der Individuen-Liste aufgerufen
    	DelIndivListe(0);
    	// Gespeicherte Anzahl der gesetzten Individuen auf Null setzen
    	AnzEndt= 0;
    	// Die Koordinaten der Zufuhr werden auf Null gesetzt
    	ZufuhrX= 0;
    	ZufuhrY= 0;
    	// Der Bildschirm wird gelöscht
        DelScreen();
    	// Die horizontale Line wird gezeichnet
    	DrawHorzLine();
    	// Die textdatei wird ausgelesen
    
        //m_MausPositionen.RemoveAll();
    	token = strtok(string,"\n");
    	while(token != NULL)
    	{
    		sscanf(token,"%d %d %d",&x_koor,&y_koor, &art);
    		//m_MausPositionen.Add(new CKoord(x_koor,y_koor,art));
    		if(art == 0)
    		{
                ZufuhrX= x_koor;
    			ZufuhrY= y_koor;
    			DrawPoints(x_koor, y_koor, art);
    		}
    		else if(art == 1)
    		{
    			// Die Koordinaten werden in eine Liste einetragen
    		    PutToList(x_koor, y_koor, art); 
    			// Die entsprechenden Symbole werden gezeichnet
    			//point.x= x_koor;
                //point.y= y_koor;
                DrawPoints(x_koor, y_koor, art);
    		}
    		token =strtok(NULL,"\n");
    	}/* while(token != NULL) */
    

    hier ist er 🙂



  • der debugger hilft mir nicht weiter.
    er springt z.b in folgende schleife, fürht die beiden zuweisungen aus, aber springt dann nicht in die DrawPoints-Funktion

    if(art == 0)
            {
                ZufuhrX= x_koor;
                ZufuhrY= y_koor;
                DrawPoints(x_koor, y_koor, art);
            }
    


  • weiß jetzt nicht, ob drawpoints eine funktion von dir oder aus einer bibliothek ist, aber wenn ersteres, schreib dort mal ein printf("drin");
    welcher compiler?
    mit dem visual studio springst du mit F11 in die funktionen im debugmodus, mit F10 überspringst du sie.



  • hallo,

    ich habs, aber ist trotzdem was faul. wenn ich die debugversion erstellen lasse gehts. wenn ich die release-version erstellen lasse, gehts nicht mehr. auch ein paar andere dige funzen in der release-version nicht mehr so 100%ig



  • roter schrieb:

    ich habs, aber ist trotzdem was faul. wenn ich die debugversion erstellen lasse gehts. wenn ich die release-version erstellen lasse, gehts nicht mehr. auch ein paar andere dige funzen in der release-version nicht mehr so 100%ig

    Typische Symptome für undefiniertem Verhalten. Und das fängt hier an:

    char *string = new char[file.GetLength()];
        char *token;
           string[file.GetLength()] = '\0'; // ouch
    

    Hab zwar auf die Schnelle erstmal keine weiteren Fehler gefunden. Das heisst aber nicht, dass es keine weiteren gibt. 😉


Anmelden zum Antworten