2014-10-18 102 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

找出问题所在。显然该项目文件已经被破坏,所以我只是将脚本转移到另一个项目,一切工作正常。