C++: Wo ist in diesem Code ein Fehler?

New member
Hey Leute,
ich lerne zurzeit Programmieren mit C++ und was mich jetzt wirklich nervt ist, dass,
wenn ich mir ein kleines Programm mache und dann ein leeres Projekt dafür nehme ohne vorkompilierte Header und allem, dass das Programm dann nicht läuft.
Ich habe hier 2 sehr einfache Programme:

Nummer 1 ohne vorkompilierte Header, alles selber geschrieben:

#include "stdafx.h"
#include <iostream>
using namespace std;

int main ()
{
cout << "Hallo Welt!" << endl;

return 0;
}


und Nummer 2 mit den vorkompilierten Header, wo ich nur noch cout und die include iostream dazugeschrieben habe:


// Hallo.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//

#include "stdafx.h"
#include <iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])

{

cout << "Hallo Programmierer!" << endl;
cout << "Wie geht es dir?" << endl;

return 0;
}



Also, bei dem 2. kommt das Programm genau so wie es sein soll, bei dem 1. aber kommt ein Fehler. Ein Screenshot davon ist im Anhang.

Warum kommt da immer der Fehler?
Und für was genau brauch ich "#include "stdafx.h"?

Und wenn ich den Code von Nummer 2 kopiere und 1:1 in Nummer 1 einfüge, dann kommt die Fehlermeldung trotzdem.
Ich habe die Einstellungen richtig drin: Konsolenanwendung, .c++-Datei.

 
Zuletzt bearbeitet:
Kurz gesagt, im Visual Studio gilt: C++ ist nicht gleich C++!

In deinem Fall hast du ein win32-Projekt mit VC++ angelegt, verwendest aber nicht die "Microsoft'sche Version". Wenn du mit VC++ Standard-Code schreiben willst musst du afaik ein leeres Projekt verwenden.

Ich habs ja schon mal geschrieben: Visual Studio ist gerade für Anfänger nicht die beste Wahl...


Zu der stdafx.h:
 
Ich habe ja ein leeres Projekt angelegt.

Wenn ich aber den 1. Code in einem leeren Projekt benutze, kommt die Fehlermeldung unten.
Aber wenn ich ein Projekt mache mit dem include stdafx.h .... und auch mit der funktion int main dann geht es.

aber warum?
 
würde auch gerne mal C;C++ lernen aber ich weis nicht wo ich anfangen soll!? gibt es irgendeine Seite wo man sich einlesen kann?
 
also, es gibt seiten wo man sich reinlesen kann und auch auf youtube tutorials um es sich mal anzusehen, musst mal schaun.
ich lern C++ mit 2 Büchern wie "From Zero2Hero" und "Einstieg in C++"....
musst mal schauen.

bitte eine Antwort, wieso geht der gleiche Code nicht, wenn ich ein leeres Projekt nehme?
 
wieso geht der genau gleiche Code nicht, wenn ich diesen in ein leeres Projekt kopiere? in einem vorkompiliertem Projekt funktioniert der Code aber....?

Wahrscheinlich weil du die Settings des Compilers in einem leeren Projekt manuell vornehmen musst. Vergleich mal die Compiler Settings deines leeren Projektes mit dem eines vorkonfigurierten Projektes.
Das ist eben auch das Problem was viele mit Visual C++ haben. Es besteht ein Unterschied zwischen reinem C++ und Visual C++ und wenn du mit den falschen Compiler Settings kompilierst kommt es zu Fehlern.
 
Zuletzt bearbeitet:
okey ich schau gleich mal nach
wo genau sind die compiler settings?
ich hab bei Extras\Optionen überall nachgeschaut und dort waren alle einstellungen gleich....
 
wo genau sind die compiler settings?

Musste mal googlen. Hab die IDE nicht auf der Platte.
Könnte auch sein das die unter dem Stichwort "Build" zu finden sind.

PS: Warum benutz du eigentlich Visual Express und nicht Code::Blocks oder eine andere IDE?
Ich würde die IDE wechseln und mich aufs lernen konzentrieren...
 
Zuletzt bearbeitet:
Weil ich visual express einfach besser finde.
Bei Code Blocks Bin ich nicht so zurecht gekommen.

Hab auch noch Notepad++ und von MinGw den Compiler....

hab auch schon gegoogelt, finde aber nichts passendes.
kann mir da jemand helfen?

bei einem vorkompiliertem projekt sind ja auch noch andere dateien in dem Projektordner drin wie in dem Ordner Headerdateien.... dort sind 2 Dateien ...
kann es sein, dass es darum bei einem leeren Projekt nicht geht, weil dort die Headerdateien Fehlen?
 
Zuletzt bearbeitet:
bei einem vorkompiliertem projekt sind ja auch noch andere dateien in dem Projektordner drin wie in dem Ordner Headerdateien.... dort sind 2 Dateien ...
kann es sein, dass es darum bei einem leeren Projekt nicht geht, weil dort die Headerdateien Fehlen?

Ich kann dir jetzt nicht sagen wie die einzelnen Optionen in VC++ heißen, aber probier mal (im übertragenen Sinne) aus, statt "Run Projet" erstmal die Option "Build Project" auszuwählen. Dann werden erstmal alle benötigten Daten für das Projekt erstellt. Bei Eclipse ist das ähnlich das sich ohne nichts kompilieren lässt.

Wenn das nicht hilft, würde ich vor schlagen dich mal in einem C++ Forum zu registrieren ( z. B. ) und dort nachzufragen. Wir scheinen ja hier auf keinen grünen Zweig zu kommen weil viele gar nicht programmieren o. die IDE nicht installiert haben. Lg
 
Also bei VC++ gibt es die Möglichkeit, das Projekt neu zu erstellen. Ich hab es mal versucht doch dann kommt wieder eine Fehlermeldung:
1>LINK : error LNK2001: Nicht aufgelöstes externes Symbol "_mainCRTStartup".
1>C:\Beispiele\Ausprobieren\Debug\Ausprobieren.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Mein gesamter Code ist aber wirklich sehr sehr leicht gehalten:
#include <iostream>
using namespace std;

int main()
{

cout << endl << "Das ist das Ergebnix :O :D" << endl << endl << "Bei Fragen, pech gehabt ;P! !!!!!" << endl;

return 0;
}

....
ich versuchs mal bei dem C++-Forum, danke trotzdem ;)
 

Online-Statistiken

Zurzeit aktive Mitglieder
0
Zurzeit aktive Gäste
226
Besucher gesamt
226

Beliebte Forum-Themen

X
Keine passende Antwort gefunden?