我正在编写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);
答案 0 :(得分:0)
你不能。您必须使用static
功能。但在您的情况下,您可以将RtspClientManager
对象作为参数传递给函数,然后使用该对象的其他方法/成员。你的声明也不正确,它们应该是这样的:
typedef void (*responseHandler)(RTSPClient* rtspClient,
int resultCode, char* resultString);
unsigned RTSPClient::sendDescribeCommand(responseHandler responseHandler);