Używanie funkcji członka klasy C ++ jako funkcji zwrotnej C

Mam bibliotekę C, która wymaga zarejestrowania funkcji zwrotnej, aby dostosować niektóre przetwarzanie. Typ funkcji wywołania zwrotnego toint a(int *, int *).

Piszę kod C ++ podobny do następującego i próbuję zarejestrować funkcję klasy C ++ jako funkcję wywołania zwrotnego:

<code>class A {
  public:
   A();
   ~A();
   int e(int *k, int *j);
};

A::A()
{
   register_with_library(e)
}

int
A::e(int *k, int *e)
{
  return 0;
}

A::~A() 
{

}
</code>

Kompilator zgłasza następujący błąd:

<code>In constructor 'A::A()',
error:
 argument of type ‘int (A::)(int*, int*)’ does not match ‘int (*)(int*, int*)’.
</code>

Moje pytania:

Po pierwsze, czy można zarejestrować funkcję pamięci klas C ++, tak jak próbuję to zrobić, a jeśli tak, to w jaki sposób? (Czytałem 32,8 whttp://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html. Ale moim zdaniem nie rozwiązuje to problemu)Czy istnieje alternatywny / lepszy sposób na rozwiązanie tego problemu?

questionAnswers(5)

yourAnswerToTheQuestion