-2
我已经在每一个线程在这个问题上,我仍然无法修复这个错误 这是GameManager.h错误c3867 ++不能弄明白
void myReshape(GLsizei w, GLsizei h);
void myDisplay(void);
void myBoardKeys(unsigned char key, int x, int y);
void timer(int millisec);
void speedtime(int speed);
void FPS(void);
void myIdle();
void mySpecialKeys(int key, int x, int y);
这是GameManager.cpp 我有所有的功能上述声明如下
void GameManager::myBoardKeys(unsigned char key, int x, int y){....}
void GameManager::timer(int millisec){....}
这是我的主要功能
GameManager* _game = new GameManager();
// ----------------------------------------------------------
// main() function
// ----------------------------------------------------------
void main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(INIT_WINDOW_W, INIT_WINDOW_H);
glutInitWindowPosition(-1, -1);
glutCreateWindow("The Frogger");
glutIdleFunc(_game->myIdle);//C3867
glutDisplayFunc(_game->myDisplay);//C3867
glutReshapeFunc(_game->GameManager::myReshape);//C3867
glutSpecialFunc(_game->mySpecialKeys);//C3867
glutKeyboardFunc(_game->myBoardKeys);//C3867
_game->timer(rand() % 1000);//C3867
glutTimerFunc(10000, _game->speedtime, 10000);//C3867
glutMainLoop();
}
我试着这样称呼它
&GameManager::myIdle
&_game->myIdle
它仍然给了我同样的错误,我不明白为什么。
希望你们能帮助我这个
由于提前
那些免费的功能?如果是这样,你为什么试图通过_game指针喂食它们? – 2014-11-06 09:52:05
你说错了。你应该把它叫做_game-> myIdle(),因为你的myIdle是一个函数。你的'_game'是一个指向具有成员函数'myIdle()'的对象的指针。另外,我假设你的'myIdle'是一个公共函数或保护函数 - 不是私有的(然后无意义地调用)。 – ha9u63ar 2014-11-06 09:52:13
它们都是公共函数,_game-> myIdle()也不起作用,它返回类型为“void”的参数与类型为“void(__cdecl *)()”的参数不兼容。“我忘记提及所有这些函数都是假设的要回调,如果我把他们都放在我的主要文件他们的工作,但老师要他们出主,他不知道如何解决这个大声笑 – 2014-11-06 09:54:31