gpt4 book ai didi

c++ - glGetIntegerv 返回垃圾值

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:03:00 25 4
gpt4 key购买 nike

#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;
}
  1. 这个程序的输出是,-858993460 .为什么?它应该返回支持的扩展数量。

  2. 如果我删除 freeglut.h头文件,程序不运行并抛出错误信息,

error LNK2019: unresolved external symbol __imp__glGetIntegerv@8 referenced in function _main

但是,glGetIntegerv在里面glew.h .为什么删除 freeglut.h会导致 Unresolved external 错误吗?

编辑 我支持 OpenGL 3.3。使用带有 Catalyst 11.6 的 Radeon 4670。

最佳答案

@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;
}

关于c++ - glGetIntegerv 返回垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6594214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com