编译器期望函数的版本"isn't there"

Compiler expecting a version of function which "isn't there"

本文关键字:there isn 函数 版本 编译器 期望      更新时间:2023-10-16

我试图使用SDL-gfx与SDL2在Windows上画一个圆圈,但得到一个错误消息,这是很难(对我来说)找出

我得到错误信息:

无法将'SDL_Renderer*'转换为'SDL_Surface*'对于参数'1'到'int circleColor(SDL_Surface*, Sint16, Sint16, Sint16, Uint32)*

我看到的唯一函数是这个

SDL2_GFXPRIMITIVES_SCOPE int circleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color);

但是错误信息似乎说函数有这些参数

circleColor(SDL_Surface*, Sint16, Sint16, Sint16, Uint32)

我找不到任何这样的函数。据我所知,这个版本的函数在我的电脑上不存在(尽管显然我错了)。这是怎么发生的?

谢谢

SDL2-gfx有SDL2_gfxPrimitives.h,您可以在其中找到此声明:

int circleColor(SDL_Renderer * renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color);

而旧的SDL-gfx有SDL_gfxPrimitives.h,其中包含:

int circleColor(SDL_Surface * surface, Sint16 x, Sint16 y,Sint16 r, Uint32 color);

您的计算机上可能有两个版本,或者您混淆了标题。