在一个简单的opengl程序中,我有以下这一行:
glutKeyboardFunc(keypressed);
问题是我的“keypressed”功能是在另一个cpp文件中包含到项目中。如何从我的其他文件中调用此函数?
在main.cpp中:
main()
{
---
glutKeyboardFunc(keypressed);
---
}
在Motion.cpp中:
void keypressed(unsigned char key, int x, int y){...}
我尝试的东西(All给出了编译错误):
glutKeyboardFunc(keypressed);
glutKeyboardFunc(Motion::keypressed);
glutKeyboardFunc(&Motion::keypressed);
glutKeyboardFunc(&keypressed);
Motion mot;
glutKeyboardFunc(mot.keypressed);
有什么建议吗? (如果库对于答案很重要,我使用了freeglut.dll)
答案 0 :(得分:1)
您需要在主C ++文件读取的位置包含一个函数原型。一种方法是将其置于main
函数之上:
void keypressed(unsigned char key, int x, int y);
执行此操作的常用方法是让每个导出函数的C ++文件都有一个标题文件,其中包含所有这些函数的原型。然后,当您想要使用该文件中定义的函数时,可以将该头文件包含在需要使用该函数的文件的顶部。