我一直在./
我不知道为什么它不起作用。
如果Resize功能是全局的
,它会起作用最小例子:
non-standard syntax; use '&' to create a pointer to member
最初的问题得到了解决,使用静态作为函数,但这在我想要做的事情中创造了不同的错误是问题的简化问题:
#include <GLFW/glfw3.h>
class test {
public:
test(){}
~test(){}
void resize(GLFWwindow* window, int new_width, int new_height) {}
}resizer;
int main(){
auto newwindow = glfwCreateWindow(1, 1, "test", NULL, NULL);
glfwSetWindowSizeCallback(newwindow, resizer.resize);
return 0;
}
答案 0 :(得分:0)
您的函数指针与传递到glfwSetWindowSizeCallback()
所需的声明不匹配。
它必须是static
函数,并且需要正确应用范围运算符::
:
#include <GLFW/glfw3.h>
class test {
public:
test(){}
~test(){}
static void resize(GLFWwindow* window, int new_width, int new_height) {}
// ^^^^^^
} /*resizer*/;
// ^^^^^^^^^^^ No need for this.
int main(){
auto newwindow = glfwCreateWindow(1, 1, "test", NULL, NULL);
glfwSetWindowSizeCallback(newwindow, test::resize);
return 0;
}