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;
}
ifdef'ed extern C是使C函數可以從C++調用的非常標準的方法,這完全可以。你正在使用什麼編譯器?什麼是確切的錯誤消息,什麼是測試程序的源代碼? – keltar 2014-10-18 10:59:29
我正在使用MinGW。 – TheBlackSword 2014-10-18 20:44:12
是的,我不確定你發佈的代碼是否是問題。也許這是它之前的事情。無論如何,你應該確保在你的環境中這不是一些錯誤,你可以嘗試創建一個新的C++項目,該項目包含一個聲明爲extern「C」的簡單函數,看看它是否已經扼殺了它。 – PeterT 2014-10-18 21:02:05