0

我正在尝试 使用一些通信使用C++ builder xe开发应用程序。DLL在 DLL 中,我使用了一个回调,它在以下位置实现myClass

我的类.h

static void CALLBACK CallbackAsynchEvent(unsigned char* Data);

我的类.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 回答