更新回调中的数据

时间:2013-05-28 09:27:40

标签: c++ callback c++builder

我正在尝试使用某些DLL通信使用 C ++ builder xe 开发应用程序。 在DLL中,我使用了一个在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"

你能帮我找到问题吗?

1 个答案:

答案 0 :(得分: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));