我正在尝试在SDL中创建一个线程。我已经按照我在网上找到的所有指示,但我一直收到这个错误:
SDL \ sample_profiler.cpp | 72 |错误:从'int'无效转换为'int()(void )'[-fpermissive] |
以下是我创建线程的代码:
void sample_profiler::run()
{
if (m_the_game_world->level_load())
{
SDL_Thread *l_thread;
l_thread = SDL_CreateThread(thread_run(m_the_game_world), "sample_thread",(void *)NULL);
}
}
以下是我头文件中的函数: int thread_run(void * p_the_game_world);
答案 0 :(得分:0)
问题是函数调用SDL_CreateThread()的第一个参数。 SDL_CreateThread()需要一个函数指针。你要做的是调用函数并将其结果(即int)作为第一个参数传递。
这是一个正确的电话:
int Test( void* p )
{
return 0 ;
}
SDL_Thread* id = SDL_CreateThread( Test , "test" , ( void* )NULL );