我将Visual Studio 2012与SDL结合使用,并且正在执行一个简单的线程任务,但始终会遇到以下错误:
argument of type "int (mainGame::*)(void *ptr)" is incompatible with parameter of type "int (__cdecl *)(void *)"
我得到的另一个错误:
error C3867: 'mainGame::gameEvents': function call missing argument list; use '&mainGame::gameEvents' to create a pointer to member
该函数的编写方式如下:
int gameEvents(void *ptr){
//do things here.
return 0;
}
这是我用来调用该函数的代码:
SDL_Thread* gh;
gh = SDL_CreateThread(gameEvents,NULL);
最佳答案
由于您使用的是C ++,因此需要使用C链接声明函数,因为这正是SDL期望的,它本身就是一个C库:
extern "C" int gameEvents(void *ptr);