我目前正在使用 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' : 非法调用非静态成员函数。非静态成员引用必须相对于特定对象。
你不能。就是这样std::function
存在于.您需要更改您的界面才能使用std::function
,幸运的话,找到某种void* context
争论,或者放弃。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)