Anfängerproblem beim ersten projekt
-
hallo, ich bin total neu bei c++ (hab mal nen bisschen was mit delphi gemacht aber auch nicht allzu viel) und habe wollte ein stanmdart "hallo welt"-programm schreiben:
habe einfach nen neues projekt angelegt und folgendes in die main-unit geschrieben:#include <iostream.h> int main(); int main() { cout<<"hello world\n"; return 0; }
dann bekomme ich immer nur beim linke diese fehlermeldung:
--------------------Konfiguration: ka - Win32 Debug--------------------
Linker-Vorgang läuft...
LIBCD.lib(wincrt0.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _WinMain@16
Debug/ka.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.ka.exe - 2 Fehler, 0 Warnung(en)
kann mir vllt. jemand sagen woran das liegt bzw wie ich es beheben kann??
achja, ich benutze eine autorenversion von visual c++ 6.0
-
du solltest beim erstellen des projektes auf "Win32 Konsolenanwendung" gehen.
dann sollte das programm auch compilierbar sein.auch wenn es eigendlich so aussehen sollte:
#include <iostream> int main() { using namespace std; cout<<"hello world\n"; return 0; }
gehoert uebrigens nach cpp
-
danke für die schnelle hilfe!!!
aber was bedeutet dasusing namespace std;
tut mir leid, dass ich in den falschen forumsteil gepostet habe, aber ich dachte es läge an visual c++...
nochmal vielen dank
-
cout ist teil vom std namespace. Damit du nicht jedes mal std::cout schreiben musst kann du using (verwende) namespace std schreiben, dann wird nicht nur der globale namespace nach cout durchsucht sondern auch std und er kann es finden.
-
okay, danke.
ich dachte nur immer dass "cout" und "cin" usw. befehle sind die in der header-datei "iostream" stehen.wenn dem aber nicht so ist, warum muss ich diese dann trtzdem implementieren? und warum funktioniert das ganze nicht, wenn wenn ich die ".h"-dateiendung mit angebe, die bei allen codebeispielen, die ich habe, dabei steht? allerdings sind diese beispiele nicht für visual-c++ gedacht...
dazu nocmal eine allgemeine frage: kann ich alle c++ projekte auch mit visual-c++ kompilieren - kleine änderungen in kauf genommen?
-
standardkonforme c++ programme sind portabel und lassen sich mit jedem standardkonformen c++ compiler uebersetzen.
hiermit waehren dann wohl auch die restlichen fragen beantwortet:http://www.voyager.prima.de/cpp/usingstd.html
http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.4
-
Mr. Pink schrieb:
ich dachte nur immer dass "cout" und "cin" usw. befehle sind die in der header-datei "iostream" stehen.
Hat hier jemand was anderes behauptet?
Die sind nur innerhalb des Namespaces "std" definiert... was 1000% korregt bzgl. C++ Standard ist.Mr. Pink schrieb:
und warum funktioniert das ganze nicht, wenn wenn ich die ".h"-dateiendung mit angebe
Da dies kein C++ Standard ist sondern Posix... Du hast aber einen C++ Compiler...
Mr. Pink schrieb:
, die bei allen codebeispielen, die ich habe, dabei steht?
Früher gab es den heutigen C++ Standard noch nicht...
Mr. Pink schrieb:
kann ich alle c++ projekte auch mit visual-c++ kompilieren - kleine änderungen in kauf genommen?
Der aktuelle C++ Compiler von MS (also VC2005) ist so Standard-konform wie kein anderer MS Compiler vorher. Es wird fast alles unterstützt und sogar Ty<pe Traits sind möglich (http://msdn2.microsoft.com/ms177194).
Somit lautet die Antwort auf die Frage: Ja (mit gaaaaanz wenigen Ausnahmen).
-
Danke für die schnellen und umfangreichen antworten, denke ich habe es jetzt verstanden (wusste nicht, dass sich der standart derart verändert hat)!