SDL mit Visual C++



  • Hi zusammen.
    In der Vergangenheit hab ich immer mit dem Compiler Dev-C++ gearbeitet, dies ist ein vergleichsweise einfaches Programm, doch mir hat es eigentlich gereicht.
    Jetzt habe ich Windows Vista, und Dev-C++ ist nicht mehr kompatibel. Ich wollte es eigentlich auch behalten, fand jedoch keine neue Version.
    Das ist der Grund, wieso ich auf Microsoft Visual C++ (2005 Express Edition) umgestiegen bin. Ich begann auch zu programmieren, einfache Konsolenanwendungen funktionierten fehlerfrei. Die Probleme begannen erst, als ich versuchte, grafische Programme laufen zu lassen. Ich hatte mit SDL gearbeitet, ich hab deren Dateien (Includes, Libs) auch ins Visual C++-Verzeichnis eingefügt und dem Compiler die neuen Ordner hinzugefügt (Extras>Optionen). Ich denke soweit war es gut, als ich ein schon länger programmiertes Programm laufen liess, kamen eine Menge Fehler:

    1>C:\Program Files\Microsoft Visual Studio 8\VC\include\inttypes.h(264) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'nptr'
    1>C:\Program Files\Microsoft Visual Studio 8\VC\include\inttypes.h(266) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'nptr'
    1>C:\Program Files\Microsoft Visual Studio 8\VC\include\inttypes.h(269) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'nptr'
    1>C:\Program Files\Microsoft Visual Studio 8\VC\include\inttypes.h(271) : error C2146: Syntaxfehler: Fehlendes ',' vor Bezeichner 'nptr'
    1>..\..\..\..\..\C++\Neuer Ordner\Springball2.cpp(21) : error C3861: "time": Bezeichner wurde nicht gefunden.

    Der letzte Fehler könnte mein eigener sein, ich wundere mich nur, wieso er nie bei Dev-C++ angezeigt wurde... Ich hatte auch keine Probleme damit...
    Zum Kontext: time war beim folgenden Befehl (RandSeed) benötigt:

    srand(time(0));
    

    Aber zurück zum Hauptproblem:
    Die Dateien waren nicht direkt von SDL, sondern ich hab sie aus dem alten Dev-C++-Verzeichnis kopiert, weil sie für SDL benötigt werden. Und anscheinend sollen sie Syntaxfehler enthalten, was ich mir schlecht vorstellen kann.
    Was mach ich dabei falsch? Das Problem ist, mit Visual C++ hab ich überhaupt keine Erfahrung, ich hab also nicht die geringste Ahnung, was ich tun soll...
    Gibt es von euch solche, die mit SDL unter Visual C++ arbeiten? Wenn ja, wie habt ihr das gehandhabt? Oder wenn nein, wisst ihr trotzdem, was mögliche Fehlerquellen sein könnten?

    Ausserdem: Ist es normal, dass fette Schlüsselwörter kaum dicker als normalgeschriebene sind (Ich hab die Formatierungen der Syntax ein bisschen geändert)? Ich denke, ich hab die neueste Version 8.0.50727.867 (vsvista.050727.8600); ich hab auch Updates ausgeführt und meine Version registriert...

    Ich würde mich auf Antworten freuen...



  • Das Problem besteht immer noch...
    Hat niemand einen Lösungsvorschlag? Ihr müsst euch nicht sicher sein, Vorschläge sind auch gut.

    Ich wäre sehr froh, wenn ich eine Antwort bekommen würde...



  • Erstmal ist es nicht gerade eine gute Idee, systemspezifische Header einfach an einen anderen Compiler zu übergeben.

    Zweitens: Zu den Fehlermeldungen - zeig doch mal bitte die erste gemeldete Zeile (mit ihrer näheren Umgebung), ohne Code wird es schwer, dort zu helfen.
    (die Meldung besagt, daß dort ein Komma vor dem nptr fehlt)

    (die C3861 solltest du mit einem #include <cstdlib> beseitigen können)



  • Das mit C3861 hat leider nichts genützt, das Problem besteht weiterhin. Wie macht ihr das, wenn ihr den Seed für den Zufallsgenerator nach der aktuellen Zeit setzen wollt? Gibts dafür noch andere Funktionen?

    Hier der ganze Kontext, wo die vier Probleme auftreten ("," vor alle "nptr" schreiben bringt nichts):

    /* 7.8.2 Conversion functions for greatest-width integer types */
    
    intmax_t __cdecl strtoimax (const char* __restrict__ nptr,
                                char** __restrict__ endptr, int base);
    uintmax_t __cdecl strtoumax (const char* __restrict__ nptr,
    			     char** __restrict__ endptr, int base);
    
    intmax_t __cdecl wcstoimax (const wchar_t* __restrict__ nptr,
                                wchar_t** __restrict__ endptr, int base);
    uintmax_t __cdecl wcstoumax (const wchar_t* __restrict__ nptr,
    			     wchar_t** __restrict__ endptr, int base);
    
    #ifdef	__cplusplus
    }
    #endif
    
    #endif /* ndef _INTTYPES_H */
    

Anmelden zum Antworten