В настоящее время я работаю с Qt и графическим движком, и во время инициализации экземпляра QGLWidget мне нужно передать несколько указателей функций моему движку.
Функция, которая ищет обратные вызовы:
virtual void Buffer::CreateCustom( byte* getsize, byte* makecurrent)
Qt предоставляет функцию makeCurrent , однако она не является ни байтом *, ни статической.
Я мог бы написать крошечную функцию-обертку, например, так:
void _stdcall MakeCurrent(void)
{
QGLContext::makeCurrent();
}
Но он предназначен только для вызова из экземпляра GLWidget.Я попытался создать функцию-оболочку члена класса следующим образом:
void _stdcall LEWidget::leMakeCurrent(void)
{
makeCurrent();
}
Но вы можете указывать только указатели на статические функции-члены.Если я это сделаю, я получу следующую ошибку:
ошибка C2352: 'QGLWidget :: makeCurrent': недопустимый вызов нестатической функции-члена.Нестатическая ссылка на элемент должна относиться к конкретному объекту.