C++ glutKeyboardfunc()回调函数参数

C++ glutKeyboardfunc()回调函数参数,c++,opengl,callback,C++,Opengl,Callback,在一个简单的opengl程序中,我有以下几行: glutKeyboardFunc(keypressed); 问题是我的“按键”功能在项目中包含的另一个cpp文件中。如何从其他文件调用此函数 在main.cpp中: main() { --- glutKeyboardFunc(keypressed); --- } in Motion.cpp: void keypressed(unsigned char key, int x, int y){...} 我尝试的东西(都给出了编译错误)

在一个简单的opengl程序中,我有以下几行:

glutKeyboardFunc(keypressed);
问题是我的“按键”功能在项目中包含的另一个cpp文件中。如何从其他文件调用此函数

在main.cpp中:

main()
{
  ---
  glutKeyboardFunc(keypressed);
  ---
}
in Motion.cpp:

void keypressed(unsigned char key, int x, int y){...}
我尝试的东西(都给出了编译错误):

有什么建议吗?
(我使用FielgLut.dl如果库的问题是要回答)

你需要在一个函数原型中包含一个函数,它将被你的主C++文件读取。一种方法是将其置于
main
函数之上:

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

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

制作一个
Motion.h
文件,该文件具有函数声明。错误LNK2019:未解析的外部符号“void\u cdecl keypressed(unsigned char,int,int)”(?keypressed@@YAXEHH@Z)在函数_main中引用(我在将函数原型添加到main.cpp时遇到此错误)@Cagkan:这意味着每个源文件都已成功编译为目标文件,但当需要将它们链接到一个可执行文件时,只包含主目标文件。由于主对象文件引用了未包含的其他对象文件,因此会出现未解决的引用错误。如何解决这取决于你如何编译它。thx为你的答案。我不熟悉VisualStudioC++编译器:/。我将搜索VisualStudio的编译选项。
void keypressed(unsigned char key, int x, int y);