Projekt wird nicht erstellt [Gelöst]



  • Hallo,
    Ich suche schon seit 2 Stunden bei Google, aber mir hat bisher nichts geholfen.
    Ich wollte ein Projekt in MS Visual C++ Debuggen. Erst erhielt ich die
    Nachricht, das mein Projekt verhaltet sei. Nun bekomme ich beim Debuggen
    oder Releasen immer folgende Nachricht:

    ---------------------------
    Microsoft Visual C++ 2010 Express
    ---------------------------
    Das Programm "C:\***\Rechner\rechner\Debug\rechenr.exe" kann nicht gestartet werden.

    Das System kann die angegebene Datei nicht finden.

    ---------------------------
    OK
    ---------------------------

    In meinem Code kann ich keine Fehler entdecken:

    #include <stdio.h>
    #include <iostream>
    #include <stdafx.h>
    
    int rechnen(int z1, int z2)
    {
    	int ergebnis;
    	ergebnis = z1 * z2;
    	return ergebnis;
    }
    
    double mittelwert(int z1, z2)
    {
    	double ergebnis;
    	ergebnis = (z1 + z2) / 2,0;
    	return ergebnis;
    }
    
    int main()
    {
    	int zahl1, zahl2;
    	int produkt;
    	double mittelw;
    
    	printf("Geben sie 2 Zahlen ein: \n\n");
    	scanf("%d %d", &zahl1, &zahl2);
    	fflush(stdin);
    
    	produkt = rechnen(zahl1, zahl2);
    	mittelw = mittelwert(zahl1, zahl2);
    
    	puts("\n");
    	printf("Produkt		= %d\n", produkt);
    	printf("Mittelwert	= %d\n", mittelw);
    
    	return 0;
    }
    

    (Original Code von Dirk Louis aus "C++ Die Referenz")

    Ich habe mal im Verzeichnis nachgeguckt, eine .exe existiert auch garnicht!
    Dann ist es ja logisch, dass er die Datei nicht findet. Was mich aber dabei
    aufregt ist, dass er keine .exe erstellt. Ich meine wozu habe ich das Programm,
    wenn es mir den gleichen Vorteil bietet wie Notepad, aber ein paar 100 MB
    schwerer ist?
    Also, um zur Frage zurück zu kommen, wie bringe ich MS Visual C++ 2010 Express
    dazu eine .exe zu erstellen?



  • tems schrieb:

    Hallo,
    Ich suche schon seit 2 Stunden bei Google, aber mir hat bisher nichts geholfen.
    Ich wollte ein Projekt in MS Visual C++ Debuggen. Erst erhielt ich die
    Nachricht, das mein Projekt verhaltet sei.

    Jo, das ist eine dumme Rückfrage.
    Er fragt "Also hey, die Quelldateien sind neuer als die Exe oder die Exe existiert nicht. Soll ich sie schnell mal erstellen?"
    Blöde Frage. Natürlich soll er. Immer.

    Und Du Tölpel hast dort mal auf "Nein" geklickt und unten war das Häkchen an "für immer merken". (Ist mir auch schon Dutzende von malen passiert.) Pech. Nu fragt er nicht mehr und compiliert nicht mehr automatisch vor dem Starten. Du könntest zwar jedesmal "Build" vorher klicken. Aber nee, da wird man ja wahnsinnig.

    Du könntest jetzt in den Optionen suchen, so sich das Häkchen versteckt und es ausmachen, damit er nochmal fragt, und ihm dann "Ja" sagen nebst "frag mich den Mist nie wieser"-Häkchen.

    Einfacher, Du legst ein neues Projekt an und kopierst den Quellcode dort rein. Hey, dazu ist notepad da. Zum Zwischenlagern von Code bei der Umbettung.



  • tems schrieb:

    double mittelwert(int z1, z2)
    {
        double ergebnis;
        ergebnis = (z1 + z2) / 2,0;
    

    Das ist aber gewagt. int durch int ergibt int. Dur wirst Dich wundern, daß er den Mittelwert immer abrundet.

    Und der Stil hat absolut nichts mit C++ zu tun. Ich würde an Deiner Stelle das Buch gleich mal löschen. Wer einen C++-Compiler so benutzt wie der Autor, der kann mit Sicherheit den Geist von C++ nicht ansatzweise rüberbringen, sondern müllt Dich nur mit Mißverständnissen voll, denen er selber unterliegt.

    printf("Mittelwert  = %d\n", mittelw);//ist aber kein int
    


  • Und Du Tölpel hast dort mal auf "Nein" geklickt und unten war das Häkchen an "für immer merken". (Ist mir auch schon Dutzende von malen passiert.) Pech. Nu fragt er nicht mehr und compiliert nicht mehr automatisch vor dem Starten. Du könntest zwar jedesmal "Build" vorher klicken. Aber nee, da wird man ja wahnsinnig.

    Leider nicht. Ich habe den Code auch schon kopiert und versucht mit anderen Pfaden
    oder Dateinamen zu debuggen. Immer das Gleiche.

    Einfacher, Du legst ein neues Projekt an und kopierst den Quellcode dort rein. Hey, dazu ist notepad da. Zum Zwischenlagern von Code bei der Umbettung

    Das meine ich.
    Ich kann etwas C, aber C++ ist für mich Neugebiet, deswegen danke für die
    Berichtigungen im Code.

    Und der Stil hat absolut nichts mit C++ zu tun. Ich würde an Deiner Stelle das Buch gleich mal löschen. Wer einen C++-Compiler so benutzt wie der Autor, der kann mit Sicherheit den Geist von C++ nicht ansatzweise rüberbringen, sondern müllt Dich nur mit Mißverständnissen voll, denen er selber unterliegt.

    Bei dem Programm ging es darum, das Prinzip der Mudularisierung zu verdeutlichen.
    Keine Ahnung ob das jetzt im C++ Stil ist, wie gesagt, ich muss es noch lernen.
    Löschen kann ich das Buch nicht. Leider bin ich zu schlecht um mit meinen
    Programmierkenntnissen einfluss auf materielle Dinge zu nehmen.
    Aber du kannst mir bestimmt ein Buch oder Tutorial empfehlen, bei dem man
    C++ schnell und effizient beigebracht bekommt.

    Aber um jetzt zur Frage zurückzukommen, was kann noch tun?
    Liegt es vielleicht an meinem Betriebssystem ( Win 8 x32)?

    Ich bedanke mich für Antworten.



  • tems schrieb:

    Aber um jetzt zur Frage zurückzukommen, was kann noch tun?
    Liegt es vielleicht an meinem Betriebssystem ( Win 8 x32)?

    Glaube nicht. Der MS-Compiler ist eigentlich voll lieb. Und wenn er auf Win8 nicht laufen würde, kämen bestimmt hier täglich so Anfragen.

    Das Einzige, was ich mir jetzt noch denken könnte, wäre, daß Du zwar ein leeres Projekt auf hast und die C++-Datei, aber die C++-Datei nur im Editor geöffnet wurd und nicht dem Projekt zugefügt. Oder daß die C++-Datei nicht als Dateiendung .cpp hat und deswegen nicht durch den Compiler geschickt wird.

    Wenn Du im Menu "Erstellen" klickst, sollte unten im Fehlerfenster eigentlich stehe, daß die exe erstellt wurde oder falls nicht, wenigstens ein Text, warum nicht.



  • Habe mein Problem nun gelöst. Ich hatte doch noch Fehler im Code.
    Hab diese nun ausgebessert und den Code etwas mit C modifiziert.

    #include <stdio.h>
    #include <iostream>
    #include "StdAfx.h"
    #include <stdlib.h>
    
    int rechnen(int z1, int z2)
    {
    	int ergebnis;
    	ergebnis = z1 * z2;
    	return ergebnis;
    }
    
    double mittelwert(int z1, int z2)
    {
    	double ergebnis;
    	ergebnis = (z1 + z2) / 2,0;
    	return ergebnis;
    }
    
    int main()
    {
    	int zahl1, zahl2;
    	int produkt;
    	double mittelw;
    
    	printf("Geben sie 2 Zahlen ein: \n\n");
    	scanf("%d %d", &zahl1, &zahl2);
    	fflush(stdin);
    
    	produkt = rechnen(zahl1, zahl2);
    	mittelw = mittelwert(zahl1, zahl2);
    
    	puts("\n");
    	printf("Produkt		= %d\n", produkt);
    	printf("Mittelwert	= %.2f\n", mittelw);
    
    	system("PAUSE");
    	return 0;
    }
    


  • ...



  • Mit C++ hat das Programm garnichts zu tun.

    Du bindest zwar <iostream> ein, verwendest es dann aber nicht.

    Ich schlage vor wirfst printf(), puts() und scanf() weg und versuchst es mal mit
    cin und cout. Dann macht auch <iostream> Sinn.

    http://msdn.microsoft.com/en-us/library/yeecc295(v=vs.100).aspx



  • tems schrieb:

    Bei dem Programm ging es darum, das Prinzip der Mudularisierung zu verdeutlichen.

    Eben.

    #include <iostream>
    //#include "StdAfx.h"//musst du wieder reinmachen, weil du beim
    //Projektanlegen nicht "keine vorcompilierten header" vor
    //"leeres projekt" angeklickt hast.
    
    int berechneProdukt(int z1, int z2)
    {
        int ergebnis = z1 * z2;
        return ergebnis;
    }
    
    double berechneMittelwert(int z1, int z2)
    {
        double ergebnis = (z1 + z2) / 2.0;
        return ergebnis;
    }
    
    int main()
    {
        using namespace std;//so brauche ich nicht immer std:: vor
        //cout zu schreiben
        cout<<"Geben sie 2 Zahlen ein: \n\n";
        int zahl1,zahl2;
        cin>>zahl1>>zahl2;
    
        int produkt = berechneProdukt(zahl1, zahl2);
        double mittelwert = berechneMittelwert(zahl1, zahl2);
    
        cout<<"\n";
        cout<<"Produkt     = "<<produkt<<"\n";
        cout<<"Mittelwert  = "<<mittelwert<<"\n";
    
    //    system("PAUSE");//Mit Strg+F5 starten, dann brauchts
    //    auch kein system("pause");
        return 0;
    }
    

    tems schrieb:

    Aber du kannst mir bestimmt ein Buch oder Tutorial empfehlen, bei dem man C++ schnell und effizient beigebracht bekommt.

    Diese Aufstellung ist recht gut.
    http://www.c-plusplus.net/forum/251551
    Trau keinen Amazon-Punkten beio Programmierbüchern.
    http://xkcd.com/937/


Anmelden zum Antworten