我写了一段代码来创建一个窗口并在其中绘制一个形状:
#include<glew.h>
#include<iostream>
#include<GL\freeglut.h>
#include<Windows.h>
#include<stdlib.h>
#include<math.h>
#pragma once
void Render_All()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glColor3f(1, 0, 0); glVertex2f(0.5, 0.5);
glColor3f(1, 0, 0); glVertex2f(0.5, -0.5);
glColor3f(1, 0, 0); glVertex2f(-0.5, -0.5);
glColor3f(1, 0, 0); glVertex2f(-0.5, 0.5);
glEnd();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(300, 300);
glutCreateWindow("Square");
//glutFullScreen();
glutDisplayFunc(Render_All);
GLenum Error = glewInit();
if(GLEW_OK != Error)
{
fprintf(stderr, "GLEW Error");
return EXIT_FAILURE;
}
glutMainLoop();
return 0;
}
代码编译正常。输出结果符合预期。唯一的问题是,我在控制台窗口中收到此消息:
fghInitialize: CreateDC failed, Screen size info may be incorrect. This is quite likely caused by a bad '-display' parameter.
在互联网上嗅探,我发现这是从 freeglut_init.c 文件中调用的。除此之外,我找不到任何解决方法。我该如何解决这个问题?
附言:这是在 Visual Studio 10 中完成的。我在相同条件下在另一台 PC(笔记本电脑)上执行了相同的程序,但没有出现此消息。所以,这很可能是硬件问题。尽管如此,它并没有解释如何解决它。
最佳答案
这是因为您将 -display 参数传递给您的程序,或者更可能是您定义了 DISPLAY 环境变量。 Under windows, FreeGLUT will use the DISPLAY variable调用CreateDC() ,需要 NULL、“DISPLAY”或有效的显示设备名称。
关于c++ - CreateDC() 导致 glutInit() 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26069038/