0

Objective C メソッドを glutDisplayFunc (およびそのような関数) の引数としてどのように使用できますか? 私は ObjC にまったく慣れていないので、これがどのように機能するのか完全にはわかりません

C++ では単に void を渡すことができますが、ObjC ではこれを試しました。

    //...
    glutDisplayFunc([self display]);
    //...

-(void) display{
    glutPostRedisplay();
}

静的メソッドも試しました

    //...
    glutDisplayFunc([self display]);
    //...

+(void) display{
    glutPostRedisplay();
}

しかし、「互換性のないタイプvoid(*)(void)のパラメーターに「void」を渡す」というエラーが発生するたびに。私はあなたがただ虚空を通り抜けることができると思った。

では、どうすればこれを機能させることができますか (メソッドでなければなりません)

4

1 に答える 1

0

C++ では、単に void を渡すことができます

いいえ、できません。

では、どうすればこれを機能させることができますか (メソッドでなければなりません)

できません。あなたが興味を持っているのは、クロージャまたはデリゲートとして知られているものですが、GLUT はグローバル スコープの C スタイルのコールバック関数を使用するだけです。あなたができる最善のことは、C と互換性のある呼び出し規約を使用してグローバル スコープ ラッパーを作成することでした。これにより、グローバル スコープ クラス インスタンスのメソッドが呼び出されます。

于 2013-05-10T14:45:02.983 に答える