DEV c++, nimmt nicht alle C++ Syntaxe an.... ;(



  • Habe ich gesagt das ich mich drücken möchte ,der Compiler soll ja nur meine Codes umwandeln in Maschinensprache!

    Wenn ich die Datei kompellieren möchte sagt er dann:

    [Linker error] undefined reference to `WinMain@16'

    Weiß einer was er meint??



  • du versuchst, ein konsolenprogramm als winapi programm zu compilieren..

    also: du musst ein konsolenoprojekt erstellen ,dann sucht er automatisch die main als einsprung.
    wenn du ein winapi projekt erstellst, dann eben analog winmain. die gibt es aber bei dir nicht.

    so long



  • Gut gemeinter Tipp: Fang lieber mit einer einfacheren Programmiersprache an, als C/C++. Am besten (Object-)Pascal oder sowas.

    dave



  • @elise
    Nochmal und in Deutsch! Er müsste doch so Ausführen wie es im Buch steht, das kann doch net sein, das die falsche Codes darein reinschreiben, ich glob das nett...

    Codebeispiele sind immer gut, ich seh objektiv und nicht selektiv!

    @_dave_

    Ich habe html, php und mysql programmiert, nah noch Fragen?

    Und PHP ähnelt C++ in Sachen Schleifen und Co sehr!



  • Schreibe das Programm mal in Notepad und speichere es als name.cpp
    anschließend öffnest du die Datei mit Dev C++ und kompilierst es, dann muss
    es gehen.



  • Hat auch nicht geklappt, hilfeeeeeeeeeee.

    #include <iostream>
    using namespace std;
    
    void outName(char *pName)  
    {  
        cout << "Mein Name ist "  
                   << pName  
                   << "\n"; 
    }
    


  • ist das dein ganzes programm? weil sowas läuft auf keinem compiler... irgenwo muss da einfach eine main funktion sein.



  • Versuch mal:

    #include <iostream> 
    using namespace std; 
    
    void outName (char *pName);
    
    int main ()
    {
      outName ("name");
      return 0;
    }
    
    void outName(char *pName)   
    {   
        cout << "Mein Name ist "   
                   << pName   
                   << "\n";  
    }
    


  • Japro hat ganz recht: der Linker-Fehler zeigt, dass die main-Funktion fehlt! Wenn Du am Anfang nicht ausdrücklich von einem "Codeauszug" gesprochen hättest, wären wir da auch schon früher drauf gekommen...
    Also wenn Dein Buch Dir den Code wirklich so liefert, ohne dass vorher mal irgendwie eine main-Funktion erwähnt wurde, dann ist es Müll und Du kaufst Dir besser ein gescheiteres Buch!! Oder hast Du vielleicht nicht alles gelesen???
    Bevor Du auf den Compiler schimpst solltest Du Dir besser wirklich sicher sein, dass es nicht an Dir liegt!



  • Danke Leute, das Buch ist klasse, aber die haben bestimmt nur auf die Variante hingewiesen wie das geschrieben wird..



  • Wo wir gerade beim Thema sind, Dev c++ 4 kennt kein

    cout << showpos << 3 << endl;
    

    nur

    cout.setf(ios::showpos);
    cout << 3 << endl;
    

    Aber so alt ist der Compiler doch nicht, weshalb ich mir nich vorstellen kann dass das nicht funktioniert, ist das vielleicht nur irgendwo ausgestellt oder ist der Compiler wirklich so "veraltet"?



  • Andreas2 schrieb:

    Japro hat ganz recht: der Linker-Fehler zeigt, dass die main-Funktion fehlt! Wenn Du am Anfang nicht ausdrücklich von einem "Codeauszug" gesprochen hättest, wären wir da auch schon früher drauf gekommen...
    Also wenn Dein Buch Dir den Code wirklich so liefert, ohne dass vorher mal irgendwie eine main-Funktion erwähnt wurde, dann ist es Müll und Du kaufst Dir besser ein gescheiteres Buch!! Oder hast Du vielleicht nicht alles gelesen???
    Bevor Du auf den Compiler schimpst solltest Du Dir besser wirklich sicher sein, dass es nicht an Dir liegt!

    Ist bei vielen Beispielen doch so, dass nur die Header und eben eine Funktion
    als kleines Code-Snippet aufgeführt werden.
    Da dies ja sonst ziemlich viel Platz in Anspruch nehmen würde, da immer ein
    vollständiges Beispiel hinzuschreiben.



  • Falky schrieb:

    Wo wir gerade beim Thema sind, Dev c++ 4 kennt kein

    cout << showpos << 3 << endl;
    

    nur

    cout.setf(ios::showpos);
    cout << 3 << endl;
    

    Aber so alt ist der Compiler doch nicht, weshalb ich mir nich vorstellen kann dass das nicht funktioniert, ist das vielleicht nur irgendwo ausgestellt oder ist der Compiler wirklich so "veraltet"?

    nimmst du auch

    #include <iostream> 
    using namespace std;
    

    ?
    ansonsten: ich kenne den dev zwar nicht, aber kann man den compiler nicht aktualisieren?
    und übrigens: das studio 6 hat auch ne menge ungereimtheiten und bugs... die ide leute kommen oft nicht hinterher... thats life 😉



  • Ja, namespace ist am Start 🙂
    Was Updates betrifft...es gibt ne Beta von Dev C++ 5, aber die ist dermaßen buggy das man damit nix anfangen kann 😞



  • Eins was komisch ist, das er das Schlüsselwort "Void" nicht als Typ erkennt, sondern immer nur als "int", haben möchte..

    #include <stdio.h>
    
    // Sowas steht doch in jeden C Buch!
    
    void main() 
    {
    char name[20];
    printf("Wie ist dein Name, Herr?");
    scanf("%s", &name);
    printf("Hallo %s, wir begrueßen dich!");
    }
    

    Aber wenn ich int hinschreibe klappt das auf einmal!



  • das liegt daran, dass "void main" falsch ist. Du solltest "int main" schreiben.

    vielleicht solltest du dir nen anderes Buch/Tutorial suchen 🙄



  • In "Jetzt lerne ich C" steht auch void main, sogar noch mit der Begründung, dass
    man das int main nur bräuchte wenn das programm einen Rückgabewert braucht, weil
    es von einem anderen aufgerufen wird.
    War daher auch erstaunt weshalb das Buch unter den Buchempfehlungen ist und nicht
    ein Wort über die falsche Syntax steht.



  • Mhh, warum erkennt er der Compiler es nicht an..

    Bestimmt weil wieder in c++ wieder abgeschaft wurde, ich lese gerade 2/7 vom Buch das sind 60 - 70 Seiten von 500 - 1000 Seiten..

    Ich habe ja noch ein C++ Buch (c++ für Dummies), gucken was die da so sagen.., bestimmt finde ich da die Lösung..



  • In C ist es verboten void main zu schreiben, es steht nirgends im Standard.
    die richtige Schreibweise für C ist:
    int main (void)

    Es gibt viele Bücher/Tutorials die nicht Standardkonform sind.
    Viele Compiler halten sich ebenfalls nicht strikt an den Standard und lassen
    solche Konstrukte wie void main durchgehen.



  • Die Autoren haben ja "Microsoft Visual c++" u. denn "Borland C++ Compiler" benutzt...

    Die Dummies Reihe ist ja bekannt das Sie keine Fehler reinschreiben..


Anmelden zum Antworten