0

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

4

1 回答 1

1

您需要在某个地方包含一个函数原型,以便您的主 C++ 文件可以读取它。一种方法是把它放在你的main函数之上:

void keypressed(unsigned char key, int x, int y);

一种常见的方法是让每个导出函数的 C++ 文件也有一个文件,其中包含所有这些函数的原型。然后,当您想使用该文件中定义的函数时,可以将该头文件包含在需要使用该函数的文件的顶部。

于 2013-10-05T23:46:05.647 回答