#include<iostream>
#include"Glew\glew.h"
#include"freeGlut\freeglut.h"
using namespace std;
int main(int argc, char* argv[])
{
GLint ExtensionCount;
glGetIntegerv(GL_NUM_EXTENSIONS, &ExtensionCount);
cout << ExtensionCount << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
该程序的输出是,-858993460.为什么?它应该返回支持的扩展数.
如果我删除freeglut.h头文件,该程序不会运行并抛出一条错误消息,
error LNK2019: unresolved external symbol __imp__glGetIntegerv@8 referenced in function _main
但是,glGetIntegerv在里面glew.h.为什么删除freeglut.h会导致未解决的外部错误?
编辑我有OpenGL 3.3支持.使用Radeon 4670和催化剂11.6.
Qua*_*fan 10
@mario和@Banthar是的,谢谢.我必须先创建一个上下文才能使用任何Opengl功能.(是的,即使对于默认使用windows的Opengl 1.1也是如此.)
glGetIntegerv没有返回垃圾.glGetIntegerv返回一个好的值,或者根本不触及指向的地址.您看到垃圾的原因是因为该变量未初始化.这似乎是一个迂腐的评论,但实际上重要的是要知道glGetIntegerv如果失败则不接触变量.谢谢@Damon
这裸骨很好.
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitContextVersion(3,3);
glutInitContextProfile(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);
glutCreateWindow("Test");
GLint ExtensionCount;
glGetIntegerv(GL_NUM_EXTENSIONS, &ExtensionCount);
cout << ExtensionCount << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)