在一个简单的opengl程序中,我在下面一行:
glutKeyboardFunc(keypressed);
问题是我的“按键”功能在项目包含的另一个cpp文件中。如何从其他文件中调用此函数?
在main.cpp中:
main()
{
---
glutKeyboardFunc(keypressed);
---
}
在Motion.cpp中:
void keypressed(unsigned char key, int x, int y){...}
我尝试的事情(全部都给出了编译错误):
glutKeyboardFunc(keypressed);
glutKeyboardFunc(Motion::keypressed);
glutKeyboardFunc(&Motion::keypressed);
glutKeyboardFunc(&keypressed);
Motion mot;
glutKeyboardFunc(mot.keypressed);
有什么建议么?
(如果库很重要,我会使用freeglut.dll)
最佳答案
您需要在主C ++文件将要读取的地方包含函数原型。一种方法是将其放在您的main
函数上方:
void keypressed(unsigned char key, int x, int y);
一种常见的实现方法是让每个导出函数的C ++文件都有一个头文件,该头文件包含所有这些函数的原型。然后,当您要使用该文件中定义的功能时,可以在需要使用该功能的文件顶部包含该头文件。
关于c++ - glutKeyboardfunc()回调函数参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19203850/