0

私はRTSPクライアントを書いていて、それを作成した後

class RtspClientManager
{
private:
    rtsp_client;
    void continueAfterDescribe(RTSPClient* rtspClient, int resultCode, char* resultString);
}

...

rtsp_client = RTSPClient::createNew(*env, szUrl);

私はdescribeコマンドを送信しています:

rtsp_client->sendDescribeCommand(continueAfterDescribe);

continueAfterDescribeインスタンスメンバーとしてRtspClientManager::continueAfterDescribe、すべてのメンバーにアクセスしたいと思います。

もちろんcontinueAfterDescribe、静的メンバー関数にすることもできますが、静的メンバーにしかアクセスできません。非静的メンバー関数へのポインターを渡し、RtspClientManager 内のすべてのインスタンス メンバーにアクセスする方法は??

RTSPClient メソッド sendDescribeCommand には、次のような署名があります。

unsigned RTSPClient::sendDescribeCommand(responseHandler* responseHandler);

typedef void (responseHandler)(RTSPClient* rtspClient,
             int resultCode, char* resultString);
4

1 に答える 1

0

できません。関数を使用する必要がありstaticます。しかし、あなたの状況では、RtspClientManagerオブジェクトをパラメーターとして関数に渡し、そのオブジェクトの他のメソッド/メンバーを使用できます。また、あなたの宣言は正しくありません。次のようにする必要があります。

typedef void (*responseHandler)(RTSPClient* rtspClient,
         int resultCode, char* resultString);

unsigned RTSPClient::sendDescribeCommand(responseHandler responseHandler);
于 2014-05-07T09:09:09.493 に答える