2014-10-18 280 views
1

我一直試圖在病毒強制我重置爲出廠狀態後,在計算機上設置SDL。使用我的IDE CodeBlocks運行SDL非常簡單,但是擴展庫的設置並不那麼簡單。 CodeBlocks識別庫的存在,但是在SDL_ttf頭文件和SDL_image頭文件中給我提供了多個錯誤。 ,其給我的麻煩的代碼的部分是這樣的:SDL_TTF標題給我帶來麻煩

/* Set up for C function definitions, even when using C++ */ 
#ifdef __cplusplus 
extern "C" { 
#endif 

第一行生成錯誤「錯誤:預期不合格-ID之前字符串常量」,第三行生成上述錯誤和誤差「錯誤:預計'}'行結束之前」。 我的猜測是,這可能有一些與SDL正在用C寫的,也許我的代碼塊尚未配置爲識別C.

編輯:測試的源代碼是這樣的:

SDL_Surface* imageBlitingFunctions::loadText(Uint8 red, Uint8 blue, Uint8 green, std::string fontname, int fontSize, std::string text) 
{ 

    SDL_Color textColor = {red, blue, green}; 

    TTF_Font *font1 = TTF_OpenFont(fontname.c_str(), fontSize); 

    SDL_Surface *message1 = TTF_RenderText_Solid(font1, text.c_str(), textColor); 

    return message1; 
} 
+0

ifdef'ed extern C是使C函數可以從C++調用的非常標準的方法,這完全可以。你正在使用什麼編譯器?什麼是確切的錯誤消息,什麼是測試程序的源代碼? – keltar 2014-10-18 10:59:29

+0

我正在使用MinGW。 – TheBlackSword 2014-10-18 20:44:12

+0

是的,我不確定你發佈的代碼是否是問題。也許這是它之前的事情。無論如何,你應該確保在你的環境中這不是一些錯誤,你可以嘗試創建一個新的C++項目,該項目包含一個聲明爲extern「C」的簡單函數,看看它是否已經扼殺了它。 – PeterT 2014-10-18 21:02:05

回答

0

找出問題所在。顯然該項目文件已經被破壞,所以我只是將腳本轉移到另一個項目,一切工作正常。