2009-07-29 68 views
1

我試圖建立使用SDL_Mixer 1.2一個Visual C++ 2008 DLL頭:語法錯誤編譯包含 「炭[]」

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

推測這是從爲Visual C++製成的構建,但是當我包括SDL_mixer.h我得到錯誤C2143:「語法錯誤:缺少';'之前'['「。

問題行是:

爲const char [] MIX_EFFECTSMAXSPEED = 「MIX_EFFECTSMAXSPEED」;

這是因爲使用動態數組結構「char []」,而不是「char *」?

文件中的所有表達式都被「extern "C" {」包裝。

回答

0

我的不好。雖然這裏的答案在C構造中是正確的,但實際的問題是我包含了一個「D」語言文件而不是C版本。

5

移動的方括號的變量名後

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

奇怪的是,它是它的樣子,因爲這可能是其他人使用的軟件包,並且語言類型明確定義爲「C」。 – Buggieboy 2009-07-29 15:50:43

3

你想:

const char MIX_EFFECTSMAXSPEED[] = "MIX_EFFECTSMAXSPEED"; 

注意,沒有「動態數組構造」在這裏 - 你有字符數組被初始化用字符串文字 - 所有編譯時間的東西。

+0

謝謝。猜猜我必須更改分發標題。 Yuch。 – Buggieboy 2009-07-29 15:52:00