我正在尝试使用某些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"
你能帮我找到问题吗?
答案 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));