Обычно такой обратный вызов будет выглядеть следующим образом:
void Callback( void* data)
{
CMyClass *myClassInstance = static_cast<CMyClass *>(data);
myClassInstance->MyInstanceMethod();
}
Конечно, вам нужно убедиться, что данные указывают на экземпляр вашего класса.Например,
CMyClass* data = new CMyClass();
FunctionCallingMyCallback( data, &Callback);
delete data;
Теперь, если я вас правильно понимаю, вам также нужно передать символ *.Вы можете заключить оба в структуру и развернуть в обратном вызове следующим образом:
MyStruct* data = new MyStruct();
data->PtrToMyClass = new CMyClass();
data->MyCharPtr = "test";
FunctionCallingMyCallback( data, &Callback);
delete data->PtrToMyClass;
delete data;
void Callback( void* data)
{
MyStruct *myStructInstance = static_cast<MyStruct *>(data);
CMyClass *myClassInstance = myStructInstance->PtrToMyClass;
char * myData = myStructInstance->MyCharPtr;
myClassInstance->MyInstanceMethod(myData);
}
или, если вы можете изменить определение CMyClass, поместить все необходимые данные в члены класса, чтобы вы моглииспользуйте обратный вызов, как в первом примере.