РЕДАКТИРОВАТЬ : Я немного неправильно понял ваш вопрос и не заметил ничего о DLL - но один и три все еще применяются, если у вас есть контроль над DLL, и вы хотите изменить ее. Если нет, все, что вы можете сделать, это номер два.
В этом случае вы можете сделать три вещи:
Во-первых, измените способ, которым ваш AnotherClass
разработан, объявив addParams
следующим образом:
void addParams(int (Myclass::*)(char*, char*) =0);
Два, вы можете сделать Myclass::myMethod()
статическим членом, и тогда ваше первоначальное объявление addParams
сработает.
Три, вы можете использовать библиотеку типа boost, чтобы связать метод следующим образом:
bool Myclass::myMethod2(){
AnotherClass *instance = AnotherClass:getInstance();
instance-> addParams(boost::bind(&Myclass::myMethod, this));
return true;
}
class AnotherClass
{
//...
void addParams(boost::function<int(char*, char*)>);
};