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 das

    using 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)!


Anmelden zum Antworten