[英]Special function in glut error message
不確定如何解決此錯誤?
這是消息...
error C2664: 'glutSpecialFunc' : cannot convert parameter 1 from 'void (__cdecl *)(unsigned char,int,int)' to 'void (__cdecl *)(int,int,int)'
1> None of the functions with this name in scope match the target type
這是我的代碼...
該函數在主體中調用。
glutSpecialFunc(Keyboard);
這是方法。
void Keyboard(unsigned char key, int x, int y) {
if (key == 27) {
exit(0);
} else if (key == GLUT_KEY_DOWN) {
drawing = 1;
} else if (key == GLUT_KEY_UP) {
drawing = 2;
} else if (key == GLUT_KEY_LEFT) {
drawing = 3;
} else if (key == GLUT_KEY_RIGHT) {
drawing = 4;
}
glutPostRedisplay();
}
glutSpecialFunc(Keyboard);
期望只包含int作為參數的函數。
因此,您只需要像下面這樣更改函數聲明:
void Keyboard(int key, int x, int y) {
if (key == 27) {
exit(0);
} else if (key == GLUT_KEY_DOWN) {
drawing = 1;
} else if (key == GLUT_KEY_UP) {
drawing = 2;
} else if (key == GLUT_KEY_LEFT) {
drawing = 3;
} else if (key == GLUT_KEY_RIGHT) {
drawing = 4;
}
glutPostRedisplay();
}
從openGL文檔中:
glutSpecialFunc
glutSpecialFunc設置當前窗口的特殊鍵盤回調。
用法
void glutSpecialFunc(void(* func)(int鍵,int x,int y));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.