Glut初始化函数 我只想问一下OpenGL和微软VisualStudioC++的函数GLUITIN。
我查阅了GLUT文档,了解了它是如何使用:Glut初始化函数 我只想问一下OpenGL和微软VisualStudioC++的函数GLUITIN。,c++,opengl,C++,Opengl,我查阅了GLUT文档,了解了它是如何使用: void glutInit(int *argcp, char **argv); 我在main.cpp文件顶部插入了这段代码,但出现了一个错误 当我跟踪错误时,它将我引导到以下代码块 /* GLUT initialization sub-API. */ GLUTAPI void APIENTRY glutInit(int *argcp, char **argv); #if defined(_WIN32) && !defined(GLUT
void glutInit(int *argcp, char **argv);
我在main.cpp文件顶部插入了这段代码,但出现了一个错误
当我跟踪错误时,它将我引导到以下代码块
/* GLUT initialization sub-API. */
GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
#ifndef GLUT_BUILDING_LIB
static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
#define glutInit glutInit_ATEXIT_HACK
#endif
#endif
上面的代码是否已经声明了glutInit
函数,然后您可以使用:
main.cpp中的void glutInit(int*argcp,char**argv)
要在其中添加其他函数,例如核心glut函数。要在VS项目中添加OpenGL库,请执行以下操作:
void CreateSimulation();
void DestroySimulation();
void AdjustSimulation(int iWindowId);
void OnIdle();
void OnDisplay();
void OnReshape(int iWidth,int iHeight);
void OnSpecial(int iKey,int iX,int iY);
void OnKeyboard(unsigned char iKey,int iX,int iY);
void OnMouse(int iButton,int iState,int iX,int iY);
void main()
{
int iWidth = glutGet(GLUT_SCREEN_WIDTH);
int iHeight = glutGet(GLUT_SCREEN_HEIGHT);
glutInitWindowPosition(0,0);
glutInitWindowSize(iWidth,iHeight);
glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE);
int iWindowId = glutCreateWindow(WINDOW_TITLE);
CreateSimulation();
atexit(DestroySimulation);
AdjustSimulation(iWindowId);
GLUI_Master.set_glutIdleFunc(OnIdle);
GLUI_Master.set_glutDisplayFunc(OnDisplay);
GLUI_Master.set_glutReshapeFunc(OnReshape);
GLUI_Master.set_glutSpecialFunc(OnSpecial);
GLUI_Master.set_glutKeyboardFunc(OnKeyboard);
GLUI_Master.set_glutMouseFunc(OnMouse);
glutMainLoop();
}
void CreateSimulation()
{
...
}
void DestroySimulation()
{
...
}
void AdjustSimulation(int iWindowId)
{
...
}
void OnIdle()
{
...
}
void OnDisplay()
{
...
}
void OnReshape(int iWidth,int iHeight)
{
...
}
void OnSpecial(int iKey,int iX,int iY)
{
switch (iKey)
{
...
}
}
void OnKeyboard(unsigned char iKey,int iX,int iY)
{
switch (iKey)
{
...
}
}
void OnMouse(int iButton,int iState,int iX,int iY)
{
switch (iButton)
{
...
}
}
我尝试创建void glutInit(int*argcp,char**argv);在VisualStudio中工作,但它抱怨错误不兼容。如何成功插入void glutInit(int*argcp,char**argv);那么在main.cpp文件中。您是否已在项目设置中将
GLUT\u BUILDING\u LIB
添加到预处理器定义中?没有。你是怎么做到的见我的问题(阅读“更新”部分)。此外,如果您愿意,我可以给您提供可能的GLUT和GLUI初始化序列(但我必须在回答中这样做,这与这个问题不完全对应)。