我只想特别询问OpenGL和Microsoft Visual Studio C ++中的函数glutInit。
我正在查看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
函数,其次可以使用:
void glutInit(int *argcp, char **argv)
中的 main.cpp
在其中添加其他功能,例如核心过剩功能。
答案 0 :(得分:1)
为了在VS项目中添加OpenGL库:
请注意,根据您的OpenGL版本,您可以跳过第4步和第7步。
此外,虽然可能与您的问题没有直接关系,但这里是“我最喜欢的”初始化序列:
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)
{
...
}
}