OpenGL glutKeyboardFunc中的错误

时间:2014-08-22 04:23:33

标签: c++ xcode opengl

我正在尝试在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;
}

1 个答案:

答案 0 :(得分:2)

glutKeyboardFunc的签名是

void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));
//                                 ^^^^^^^^

mykeypressed()的第一个参数是char,而不是unsigned char。这两种类型是不同的。