#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;
}
-858993460
。为什么?它应该返回支持的扩展数量。 freeglut.h
头文件,程序不会运行并抛出错误消息 error LNK2019: unresolved external symbol __imp__glGetIntegerv@8 referenced in function _main
但是,
glGetIntegerv
在 glew.h
里面。为什么删除 freeglut.h
会导致 Unresolved external 错误?编辑 我有 OpenGL 3.3 支持。使用 Radeon 4670 和催化剂 11.6。
最佳答案
@mario & @Banthar 是的,谢谢。我必须首先创建一个上下文才能使用任何 Opengl 功能。(是的,即使是 Windows 默认的 Opengl 1.1。)
glGetIntegerv 没有返回垃圾。 glGetIntegerv 要么返回一个好的值,要么根本不接触指向的地址。之所以看到垃圾,是因为变量没有初始化。这似乎是一个迂腐的评论,但知道 glGetIntegerv 在失败时不会触及变量实际上很重要。谢谢@达蒙
这个裸骨工作正常。
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;
}
关于c++ - glGetIntegerv 返回垃圾值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6594214/