
环境:Windows 下 OpenGL ,Used in VS2013
前言:刚接触 OpenGL 的人,第一件事当然就是配置环境,说起配置环境 OpenGL 和 DirectX 相差不多,同时也基本报了一个相近的错误,见正文
问题:由于是刚刚接触 OpenGL,基本的东西也不知道,文章结尾留了一个问题,求解答!谢谢!
代码如下:
#include <gl/GLUT.H> void Initial();
void Display();
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutCreateWindow("game标题");
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 400);
glutInitWindowPosition(200, 100);
glutDisplayFunc(Display);
Initial();
glutMainLoop();
return 0;
}
void Display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glRectf(50.0f, 100.0f, 150.0f, 50.0f);
glFlush();
} void Initial()
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 200.0, 0.0, 150.0); }
错误代码如下:
1>------ 已启动生成: 项目: Project1, 配置: Debug Win32 ------
1> main.cpp
1>main.obj : error LNK2019: 无法解析的外部符号 __imp____glutInitWithExit@12,该符号在函数 _glutInit_ATEXIT_HACK@8 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 __imp____glutCreateWindowWithExit@8,该符号在函数 _glutCreateWindow_ATEXIT_HACK@4 中被引用
1>F:\Project\CPlusPlus\Graphics\Project1\Debug\Project1.exe : fatal error LNK1120: 2 个无法解析的外部命令
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

随即在网络上查找相关方法:结果发现,其实很简单的一句
#define GLUT_DISABLE_ATEXIT_HACK
完整代码如下:
#define GLUT_DISABLE_ATEXIT_HACK
#include <gl/GLUT.H> void Initial();
void Display();
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutCreateWindow("game标题");
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 400);
glutInitWindowPosition(200, 100);
glutDisplayFunc(Display);
Initial();
glutMainLoop();
return 0;
}
void Display()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f, 0.0f, 0.0f);
glRectf(50.0f, 100.0f, 150.0f, 50.0f);
glFlush();
} void Initial()
{
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 200.0, 0.0, 150.0); }
下面是允许的的截图:

文章开头提到的问题:
上述程序中,最后允许,好像是从控制台允许,然后打开一个窗体的,怎么样直接打开窗体,而没有控制台的黑窗体呢? 求助!