c++ - glfwSetScrollCallback() 编译失败
问题描述
我想为我的应用程序设置鼠标滚动回调,但总是出现错误。这是一个代码片段:
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
有人知道如何解决这个问题吗?
解决方案
scrollCallback
是一个成员函数,所以你不能做&scrollCallback
并获得一个普通的函数指针。(可以&RambleController::scrollCallback
用来获取成员函数指针,对 没用glfwSetScrollCallback
)
确保你的scrollCallback
函数要么是static
,要么完全在类之外。
推荐阅读
- jquery - jquery .submit() 和 .click() 用于必需的输入字段
- html - 使用 ejs 在下拉列表中显示数据的问题
- java - 函数内的 LayoutParam 问题
- mysql - sql在线查询
- android - android终端模拟器中的Tcpdump ctrl-c sigint不起作用
- ios - Flutter - iOS 启动屏幕未正确加载
- react-native - react-native-elements 图标未显示
- javascript - FabricJS 删除活动对象的问题
- matlab - 函数的请求输出参数
- javascript - 在同一个文件中分离 Javascript 片段