1

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);

4

1 に答える 1

0

問題は、関数呼び出し SDL_CreateThread() の最初のパラメーターです。SDL_CreateThread() には関数ポインタが必要です。関数を呼び出して、その結果である int を最初のパラメーターとして渡します。

これは正しい呼び出しです。

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

SDL_Thread* id = SDL_CreateThread( Test , "test" , ( void* )NULL );
于 2014-05-10T12:32:08.123 に答える