2009-07-29 12 views
1

Ich versuche, ein Visual C++ 2008 DLL mit SDL_mixer 1.2 zu erstellen: von einer für Visual C hergestellt BuildSyntaxfehler Kopf Kompilieren mit "char []"

http://www.libsdl.org/projects/SDL_mixer/

Dies ist angeblich ++, aber wenn ich include SDL_mixer.h Ich bekomme den Fehler C2143: "Syntaxfehler: fehlt ';' vor '[' ".

Das Problem Zeile ist:

const char [] MIX_EFFECTSMAXSPEED = "MIX_EFFECTSMAXSPEED";

Ist dies wegen der Verwendung des dynamischen Array-Konstrukts "char []" anstelle von "char *"?

Alle Ausdrücke in der Datei werden von "extern "C" {" umschlossen.

Antwort

0

Mein schlechtes. Obwohl die Antworten hier in Bezug auf C-Konstrukt korrekt sind, war das eigentliche Problem, dass ich eine "D" -Datei anstelle der C-Version eingefügt hatte.

5

bewegen die eckigen Klammern nach dem Variablennamen

const char MIX_EFFECTSMAXSPEED[] = "MIX_EFFECTSMAXSPEED"; 
+0

Seltsam, dass es so war, wie es war, da dies vermutlich ein Paket ist, das andere verwenden, und der Sprachtyp ist definitiv als "C" definiert. – Buggieboy

3

Sie wollen:

const char MIX_EFFECTSMAXSPEED[] = "MIX_EFFECTSMAXSPEED"; 

Beachten Sie, dass es keine „dynamische Array konstruieren“ hier - Sie eine Reihe von Zeichen, die initialisiert mit String-Literal - alles kompilieren Zeit Dinge.

+0

Danke. Ich denke, ich muss den Verteilerkopf ändern. Yuch. – Buggieboy