Verwenden einer C ++ - Klassenmitgliedsfunktion als C-Rückruffunktion

Ich habe eine C-Bibliothek, für die eine Rückruffunktion registriert werden muss, um einige Verarbeitungsschritte anzupassen. Typ der Rückruffunktion istint a(int *, int *).

Ich schreibe C ++ - Code ähnlich dem folgenden und versuche, eine C ++ - Klassenfunktion als Rückruffunktion zu registrieren:

<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>

Der Compiler gibt folgenden Fehler aus:

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

Meine Fragen:

Zuallererst ist es möglich, eine C ++ - Klassenmitgliedsfunktion zu registrieren, wie ich es versuche, und wenn ja, wie? (Ich las 32.8 beihttp://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html. Aber meiner Meinung nach löst es das Problem nicht)Gibt es eine alternative / bessere Möglichkeit, dies zu beheben?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage