C++ 在回调中更新数据
我正在尝试使用一些C++ 在回调中更新数据,c++,callback,c++builder,C++,Callback,C++builder,我正在尝试使用一些DLL通信,用C++builderxe开发一个应用程序。 在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
DLL
通信,用C++builderxe开发一个应用程序。
在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未定义符号XXXX”
<>你能帮我找出问题吗?< /P> < P>我把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));
void myClass::vDoSomething(无符号字符*数据)
{
//在回调中处理待办事项
}
void回调CallbackAsynchEvt(未签名字符*数据,void*ptT)
{
静态广播(ptT)->视频广播(数据);
}
//传递指针的myClass的函数membre:
启动(CallbackAsynchEvt、static_cast(this));
您可能应该发布更多的代码,但可能您正在尝试访问myClass的非静态成员,这在静态函数中是无法实现的?我认为这就是问题所在。我相信解决方案是将C++方法封装到C回调API中。有人知道怎么做吗?