SDL_CreateThread无效转换

时间:2014-05-10 11:24:48

标签: sdl createthread

我正在尝试在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);

1 个答案:

答案 0 :(得分:0)

问题是函数调用SDL_CreateThread()的第一个参数。 SDL_CreateThread()需要一个函数指针。你要做的是调用函数并将其结果(即int)作为第一个参数传递。

这是一个正确的电话:

int Test( void* p )
{
    return 0 ;
}

SDL_Thread* id = SDL_CreateThread( Test , "test" , ( void* )NULL );