我正在尝试在OpenGL中使用glutKeyboardFunc。但是,当我在main中使用此功能时,它给我一个错误,即No matching function for call to 'glutKeyboardFunc'
。为什么会这样呢?
#include<GLUT/glut.h>
#include<OpenGL/OpenGL.h>
#include<iostream>
using namespace std;
static void display(){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1.0, 1.0, -1.0, 1.0);
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.6, 1, 0.4);
glFlush();
}
void mykeypressed(char key, int x,int y){
}
int main(int argc, char * argv[]){
glutInit(&argc, argv);
glutInitWindowPosition(300, 300);
glutInitWindowSize(500, 500);
glutCreateWindow("ps4_1");
glutDisplayFunc(display);
glutKeyboardFunc(mykeypressed);
glutTimerFunc(10000, exit, 0);
glutMainLoop();
return 0;
}
最佳答案
glutKeyboardFunc
的签名是
void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));
// ^^^^^^^^
您的
mykeypressed()
的第一个参数是char
,而不是unsigned char
。这两种类型是不同的。关于c++ - OpenGL glutKeyboardFunc中的错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25439526/