【发布时间】:2012-11-13 21:41:20
【问题描述】:
我正在使用here 找到的教程。我正在使用 GLFW。我的窗口加载正常,但调用时
GLuint vertexBuffer;
glGenBuffers( 1, &vertexBuffer );
printf( "%u\n", vertexBuffer );
它没有写入控制台,如果我关闭 openGL 窗口它会中断(如果我关闭控制台则不会)。我猜是指针有问题?但这对我来说似乎是正确的,这正是他在教程中的做法。
这是我的整个非常小的 .cpp (VS2012):
#define GLEW_STATIC
#include <GL/glew.h>
#include <GL/glfw.h>
#include <stdio.h>
#include <stdlib.h>
#pragma comment( lib, "glfw.lib")
#pragma comment( lib, "opengl32.lib")
#pragma comment( lib, "glew32s.lib")
int main() {
glfwInit();
glfwOpenWindowHint( GLFW_OPENGL_VERSION_MAJOR, 3 );
glfwOpenWindowHint( GLFW_OPENGL_VERSION_MINOR, 2 );
glfwOpenWindowHint( GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE );
glfwOpenWindowHint( GLFW_WINDOW_NO_RESIZE, GL_TRUE );
glfwOpenWindow( 800, 600, 0, 0, 0, 0, 0, 0, GLFW_WINDOW );
glfwSetWindowTitle( "OpenGL" );
printf("This works");
while( glfwGetWindowParam( GLFW_OPENED ) ) {
glfwSwapBuffers();
}
glewExperimental = GL_TRUE;
glewInit();
GLuint vertexBuffer;
glGenBuffers( 1, &vertexBuffer );
printf( "%u\n", vertexBuffer );
glfwTerminate();
exit( EXIT_SUCCESS );
}
【问题讨论】:
-
尝试在 printf 后添加
fflush(stdout);。