2012-11-25 45 views
0

我目前正在开发一个项目(C++),包括制作一个包含通过编译和运行时使用fstream收集的一些信息的日志文件。在使用glGetString()命令,分别与GL_VENDOR/GL_VERSION/GL_RENDERER一起使用时,流停止打印,因此我的日志文件在使用这些命令之一处停止。信息直接打印在整个运行的文件中。 OpenGL版本是做日期。C++ OpenGL fstream问题

编辑:
样品:
buildLog.open( “释放/ build.log”);
buildLog < <“\ n供应商:”< < glGetString(GL_VENDOR);

+2

这不足以提供足够的信息来帮助解决这个问题。您需要提供证明问题的代码。 –

+0

当你调用'glGetString()'时你有当前的GL上下文吗? – genpfault

+0

@genpfault唉,看来我一直在尝试在GL上下文之前这样做。现在所有的作品发布后都很棒。谢谢! – user203432

回答

0

glGetString()要求(与大多数OpenGL函数一样)当前GL上下文正常工作。

1

我还没有真正了解OpenGL,所以这是有点推测,但我看到它返回GLubyte *。也许是铸造问题。我也会尝试检查fail/bad/eof以查看它是否显示任何内容。

+0

我建议,例如glGet_String_(GL_VENDOR)将分别返回一个字符串值。 – user203432

+0

我不太确定你的意思,但字符串应该工作,我会想。使用流(如ostream)也可以设置bad/fail/eof标志。根据我的经验,一旦设置了一个,在你调用clear()之前,没有读/写文件可以工作。 (在这种情况下, .clear())因此,它帮助后调用清除?此外,我会尝试检查标志,这是所有想到的。如果没有人回答这个问题,我不确定你的评论意味着什么。我认为这不是问题。 – 2012-11-25 23:03:18

+0

原来这是在GL上下文本身之前调用它的意图。现在全部整理出来。谢谢! – user203432