簡體   English   中英

glut錯誤消息中的特殊功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM