gpt4 book ai didi

c++ - 如何将非静态函数作为回调传递?

转载 作者:行者123 更新时间:2023-11-30 03:04:47 26 4
gpt4 key购买 nike

我目前正在使用 Qt 和图形引擎,在 QGLWidget 实例的初始化期间,我需要将一些函数指针传递给我的引擎。

寻找回调的函数是:

virtual void Buffer::CreateCustom( byte* getsize, byte* makecurrent)

Qt 提供了一个 makeCurrent function然而它既不是 byte* 也不是静态的。

我可以像这样写一个小的包装函数:

void _stdcall MakeCurrent(void)
{
QGLContext::makeCurrent();
}

但它只能从 GLWidget 的实例中调用。我试图像这样创建一个类成员包装函数:

void _stdcall LEWidget::leMakeCurrent(void)
{
makeCurrent();
}

但是你只能在静态成员函数上提供函数指针。如果我这样做,我会收到以下错误:

错误 C2352:“QGLWidget::makeCurrent”:非法调用非静态成员函数。非静态成员引用必须与特定对象相关。

最佳答案

看到这个问题,我想这差不多就是你想做的了:

How do I implement a callback in C++?

关于c++ - 如何将非静态函数作为回调传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8373550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com