我正在使用發現的教程here。我正在使用GLFW。我的窗口加載罰款,但調用無法在GLEW應用程序中打印OpenGL緩衝區以控制檯
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);'。 – datenwolf