У меня есть 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);
Это позволяет обратному вызову вызватьнестатическая функция, но когда эта функция вызывает другие функции в других классах в приложении, это приводит к нарушению доступа к памяти для любых переменных, которые не являются статическими.
Может кто-нибудь определить, что я, возможно, сделал неправильно?Нужны ли мне статические экземпляры всех моих классов или что-то в этом роде?
Спасибо!