c ++中的错误c3867无法弄明白

时间:2014-11-06 09:49:29

标签: c++ glut

我已经参与了这个主题的每个主题,我仍然无法修复此错误 这是GameManager.h

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

它仍然给我同样的错误,我不明白为什么。

希望你们能帮我解决这个问题

先谢谢

1 个答案:

答案 0 :(得分:0)

我想出来的人谢谢!! 这是解决方案,这是GameManager.h

static float R, W, H;
int timespeed = 35;
static GLint gFramesPerSecond;

static void myReshape(GLsizei w, GLsizei h);
static void myDisplay(void);
static void myBoardKeys(unsigned char key, int x, int y);
static void timer(int millisec);
static void speedtime(int speed);
static void FPS(void);
static void myIdle();
static void mySpecialKeys(int key, int x, int y);

这是GameManager.cpp

float GameManager::R, GameManager::H, GameManager::W;
GLint GameManager::gFramesPerSecond;
Jogo* GameManager::_jogo = new Jogo();
void GameManager::myReshape(GLsizei w, GLsizei h){...}
Rest of functions here....

这是我的主要

 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(GameManager::myIdle);
    glutDisplayFunc(GameManager::myDisplay);
    glutReshapeFunc(GameManager::myReshape);
    glutSpecialFunc(GameManager::mySpecialKeys);
    glutKeyboardFunc(GameManager::myBoardKeys);
    GameManager::timer(rand() % 1000);
    glutTimerFunc(10000, GameManager::speedtime, 10000);
    glutMainLoop();
}

我必须让一切都变得静止,现在可以了。

谢谢!