0

何らかの通信を使用して、 C++ builder xeでアプリケーションを開発しようとしています。DLLDLL では、以下に実装されているコールバックを使用しますmyClass

myClass.h

static void CALLBACK CallbackAsynchEvent(unsigned char* Data);

myClass.cpp

    void CALLBACK CallbackAsynchEvent(unsigned char* Data)
{
// use Data to update a variable membre of myClass
}

myClass取得したデータを使用してオブジェクト XXXX を更新しようとすると、: "E2451 Undefined symbol XXXX"

問題を見つけるのを手伝ってもらえますか?

4

1 に答える 1

1

C++ メソッドを C コールバック API にラップすることで問題を解決しました。

以下は、助けが必要な人の例です。

void myClass::vDoSomething(unsigned char* Data)
{
   // work todo in the callback
}

void CALLBACK CallbackAsynchEvt(unsigned char* Data, void *ptT)
{
   static_cast<myClass*>(ptT)->vDoSomthing(Data);
}

// the function membre of myClass where the Pointer is passed:

Start(CallbackAsynchEvt, static_cast<void *>(this));
于 2013-05-29T10:44:02.700 に答える