c++ - glfwSetScrollCallback() 编译失败

标签 c++ opengl glfw

我想为我的应用程序设置鼠标滚动回调,但总是出错。这是一个代码片段:

void RambleController::scrollCallback(GLFWwindow *window, double xoffset, double yoffset)
{
    _owner->move(_owner->getForward() * (float)yoffset * _zoomSpeed);
}

RambleController::RambleController(float moveSpeed, float lookAroundSpeed, float zoomSpeed, float slideAroundSpeed)
    :_moveSpeed{ moveSpeed }, _lookAroundSpeed{ lookAroundSpeed },
    _zoomSpeed{ zoomSpeed }, _slideAroundSpeed{ slideAroundSpeed } {
    glfwSetScrollCallback(window, scrollCallback);//Error here
}

错误 C3867

'violet::RambleController::scrollCallback': non-standard syntax; use '&' to create a pointer to member

在我将 & 添加到参数后,还有其他错误,如:

glfwSetScrollCallback(window, &scrollCallback);//

Error C2276'&': illegal operation on bound member function expression

有人知道如何解决这个问题吗?Ths。

最佳答案

scrollCallback 是一个成员函数,因此您不能执行 &scrollCallback 并获得普通函数指针。 (可以使用&RambleController::scrollCallback获取成员函数指针,对glfwSetScrollCallback没用)

确保您的scrollCallback 函数是static,或者完全在类之外。

关于c++ - glfwSetScrollCallback() 编译失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51853062/

相关文章:

c++ - OpenGL:点在无穷远的三角形

c++ - glDrawArrays由于某些原因无法正常工作?

C++/Tcl 调用 Tcl_CreateCommand 记录的函数时,我可以检索 Tcl 文件行号吗

opengl - `GLfloat` 和 `cl_float` 是否保证具有相同的大小?

java - 无法使用 VBO 渲染四边形

c++ - GLEW _First 是 nullptr

c - 如何修复Glad.c中对符号 'dlclose@@GLIBC_2.2.5'的 undefined reference

c++ - 如何使用 boost::date_time 读取 ISO 时区?

c++ - 如何在不分割的情况下在一个包中接收 TCP 套接字数据

c++ - Qt C++ : Include all library files in project folder