在一个简单的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/

10-09 07:35