我有一个C ++ DLL,我将指向静态函数的指针作为回调:
static void CallBackFunc(int num);
为了让这个函数访问我的其余代码,我有一个指向标题中类的指针:
static void* m_obj;
并在代码中:
void* CPPUDlg::m_obj;
并且在我的静态函数中:
CPPUDlg* m_pointer = (CPPUDlg*)m_obj;
m_pointer->OnSerialMsg(num);
这允许回调调用非静态函数,但是当该函数调用applcation中其他类中的其他函数时,对于任何非静态变量的内存访问冲突都会出错。
有人能发现我做错了吗?我是否需要所有类的静态实例或类似的东西?
谢谢!
答案 0 :(得分:0)
m_obj是否设置为活动对象? - sharptooth
非常感谢你的评论。
我查了一下,忘了设置m_obj
在我的初始化中,我现在设置m_obj = this;
一切都很完美!
谢谢!