如何传递非静态函数作为回调? [复制]

2023-12-02

我目前正在使用 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(使用前将#替换为@)

如何传递非静态函数作为回调? [复制] 的相关文章

  • boost::multi_index_container 复合键中的 equal_range 与比较运算符

    我正在尝试从多索引容器查询结果 其中值类型是三个元素的结构 第一个值已给出 但第二个和第三个值必须大于或小于查询参数 经过搜索后 我发现必须实现自定义密钥提取器 并且这里的一些链接建议相同 但我无法实现它 boost multi index
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 创建 DirectoryEntry 实例以供测试使用

    我正在尝试创建 DirectoryEntry 的实例 以便可以使用它来测试将传递 DirectoryEntry 的一些代码 然而 尽管进行了很多尝试 我还是找不到实例化 DE 并初始化它的 PropertyCollection 的方法 我有
  • 自动从 C# 代码进行调试过程并读取寄存器值

    我正在寻找一种方法来读取某个地址的 edx 注册表 就像这个问题中所问的那样 读取eax寄存器 https stackoverflow com questions 16490906 read eax register 虽然我的解决方案需要用
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • 使用向量的 merge_sort 在少于 9 个输入的情况下效果很好

    不知何故 我使用向量实现了合并排序 问题是 它可以在少于 9 个输入的情况下正常工作 但在有 9 个或更多输入的情况下 它会执行一些我不明白的操作 如下所示 Input 5 4 3 2 1 6 5 4 3 2 1 9 8 7 6 5 4 3
  • 使用安全函数在 C 中将字符串添加到字符串

    我想将文件名复制到字符串并附加 cpt 但我无法使用安全函数 strcat s 来做到这一点 错误 字符串不是空终止的 我确实设置了 0 如何使用安全函数修复此问题 size strlen locatie size nieuw char m
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 什么是 C 语言的高效工作流程? - Makefile + bash脚本

    我正在开发我的第一个项目 该项目将跨越多个 C 文件 对于我的前几个练习程序 我只是在中编写了我的代码main c并使用编译gcc main c o main 当我学习时 这对我有用 现在 我正在独自开展一个更大的项目 我想继续自己进行编译
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • Bing 地图运行时错误 Windows 8.1

    当我运行带有 Bing Map 集成的 Windows 8 1 应用程序时 出现以下错误 Windows UI Xaml Markup XamlParseException 类型的异常 发生在 DistanceApp exe 中 但未在用户
  • 将变量分配给另一个变量,并将一个变量的更改反映到另一个变量中

    是否可以将一个变量分配给另一个变量 并且当您更改第二个变量时 更改会瀑布式下降到第一个变量 像这样 int a 0 int b a b 1 现在 b 和 a 都 1 我问这个问题的原因是因为我有 4 个要跟踪的对象 并且我使用名为 curr
  • 为什么 strtok 会导致分段错误?

    为什么下面的代码给出了Seg 最后一行有问题吗 char m ReadName printf nRead String s n m Writes OK char token token strtok m 如前所述 读取字符串打印没有问题 但

随机推荐

  • Scala 中的广义结构类型一致性

    我对使特定类型符合更通用的结构类型的问题感兴趣 考虑以下示例 trait Sup trait Sub extends Sup type General def contra o Sub Unit def co Sup def default
  • 重复本地通知会立即触发——如何推迟?

    我的目标是设置一个在未来N秒后第一次发生的通知 然后每N秒重复一次 但是 创建重复通知似乎会触发UNUserNotificationCenterDelegate立即地 应用程序委托 func application application
  • 检查图像是否存在恶意代码并将其删除

    如何检测上传的图像是否包含恶意代码并将其从临时文件夹中删除 code FILES file tmp name 据我所知 没有办法阻止它访问 tmp 文件夹 我读到我可以使用 file data getimagesize FILES file
  • 如何使用blueimp jQuery文件上传:Struts 2中文件上传结果为空,文件项为空

    我使用的是Blueimp 服务器端是Java Struts2 我找不到使用 Java 的示例 无论如何我设法使用示例代码 但我得到了 Empty file upload result 当我也尝试上传单个文件时 HTML 部分是相同的 我不在
  • 如何在 Perl 程序中创建等待省略号?

    以下代码无法正常工作 print Processing your listing sleep n print sleep n print sleep n print n n 试图在有的地方得到一些东西 然后另一个 然后另一个 进而Proce
  • 从 scala 中的嵌套 json 文件创建 Spark 数据框 [重复]

    这个问题在这里已经有答案了 我有一个如下所示的 json 文件 group lang 1 scala functional 2 java object 3 py interpreted 我尝试使用创建一个数据框 val path some
  • 从 PHP 数组中删除一个值

    使用 PHP 我尝试根据元素的值从数组中删除元素 例如 使用以下数组 Array 671 gt Array 0 gt 1 1 gt 100 2 gt 1000 900 gt Array 0 gt 15 1 gt 88 我希望能够指定要删除的
  • 如何向 dateFormatter 添加字符

    我跟着this答案 但它对我不起作用 我想将我的时间格式化为 2017 09 11T11 45 00 04 00 我正在做 let xFormatter DateFormatter xFormatter dateFormat yyyy MM
  • CSS 可以选择具有特定内容的元素吗? [复制]

    这个问题在这里已经有答案了 可能的重复 CSS 3 内容选择器 我想知道 是否可以使用 CSS 根据元素的内容来选择元素 我意识到我可以使用这样的东西 this href foo php And the styles 但有没有一种方法可以根
  • 如何检查 pandas DataFrame 是否为空?

    如何检查是否有熊猫DataFrame是空的 我想在终端中打印一些消息 如果DataFrame是空的 您可以使用该属性df empty检查它是否为空 if df empty print DataFrame is empty Source 熊猫
  • OpenCV / Python:用于实时面部识别的多线程

    我正在使用 OpenCv 和 Dlib 来执行面部识别带地标 来自网络摄像头流 语言是Python 它在我的 MacBook 笔记本电脑上运行良好 但我需要它从台式计算机 24 7 运行 该计算机是一台运行 Debian Jessie 的
  • 在烧瓶中发送发布请求时出现错误(python)

    我正在向协程函数发送一个发布请求 但出现以下错误 Traceback most recent call last File usr local lib python3 4 site packages flask app py line 19
  • 为 Cygwin 启用本机 NTFS 符号链接

    最近的 NTFS 和 Windows 实现了符号链接 NTFS连接点自 NTFS 3 0 Windows 2000 起可用作目录符号链接linkd or junction tools NTFS 符号链接也可以用作符号链接 对于文件和目录 因
  • app.config

    假设我有一个使用 VS2008 针对 NET 2 0 构建和编译的 WinForms 应用程序 据我了解 在运行时 应用程序将首先尝试加载 NET 2 0 CLR 因为这是它的编译对象 不管app config 文件的任何 supporte
  • Windows Phone 8.1 从代码发送 HTML 邮件

    我试图打开邮件应用程序 其内容在代码中定义 但是当我发送它时 gmail oulook 显示为纯文本而不是 HTML private async void SendEmail string url EmailMessage mail new
  • C# 将日期时间转换为自定义格式

    我正在查询一个datetime dd mm YYYY hh mm ss 数据库中的值并将其插入到列表中 如下所示 ord invoiceDate dt Rows i invoicedate ToString 如何将此字符串转换为自定义格式
  • 在matlab中使用bitshift绘制RGB直方图

    我正在尝试在 Matlab 中创建马赛克图像 该数据库主要由 RGB 图像组成 但也包含一些灰度图像 我需要计算直方图 就像维基百科文章的示例中关于颜色直方图 对于 RGB 图像 考虑使用 Matlab 中的位移运算符来组合 R G 和 B
  • HTML5 - mp4 视频无法在 IE9 中播放

    我有一个 mp4 视频 我想使用 HTML5 在 IE9 中播放
  • startManagingCursor() 在服务中?

    有没有办法在服务中而不是活动中使用 startManagingCursor 并获得相同的结果 如图所示here 更具体地说 我想根据服务的生命周期管理给定游标的生命周期 例如 当服务被销毁时 它将自动对给定的 Cursor 调用 deact
  • 如何传递非静态函数作为回调? [复制]

    这个问题在这里已经有答案了 我目前正在使用 Qt 和图形引擎 在 QGLWidget 实例的初始化期间 我需要将一些函数指针传递给我的引擎 寻找回调的函数是 virtual void Buffer CreateCustom byte get