我正在尝试在Visual Studio 2012 Express中使用一些OpenGL函数,我的代码如下所示:
#include <Windows.h>
#include <iostream>
#include <gl/GL.h>
#include <fstream>
void saveScreen()
{
//code to define some variables, nWidth, nHeight and Buffer.
glreadbuffer ( GL_BACK ); //which buffer we are reading from.
glreadpixels ( 0, 0, nWidth, nHeight, GL_RGB, GL_UNSIGNED_BYTE, (GLvoid *Buffer);
//do something with buffer data
return;
}
根据互联网研究,我的代码是正确的,除了glreadpixels显然期望更多的表达和),但我想我可以自己解决。
当我尝试编译并运行时,我得到错误,说glreadbuffer和glreadpixels都是未定义的。除了#including windows.h和gl / gl.h之外,我找不到任何能告诉我该做什么的事情,而且OpenGL应该可以工作。
提前感谢您的任何帮助:)
编辑:
感谢您的回复,我将这些行添加到链接器的附加依赖项中:
opengl32.lib glu32.lib
并正确地将函数调用大写 这似乎解决了这个问题。
答案 0 :(得分:0)
OpenGL中不存在函数glreadbuffer()
和glreadpixels
。 API使用CamelCase函数名称样式,因此这些函数名称拼写为glReadBuffer()
和glReadPixels()
。
答案 1 :(得分:0)
这是您在visual studio 12中正确链接的方式:
你创建的第一件事是一个名为“dev”的文件夹(或者实际上是任何名称)。在该文件夹中,您可以提取“freeglut”(仅当您需要窗口工具包)和“glew”(openGL扩展管理器,这会加载gl函数)。
之后,在VS12中打开一个新项目,然后右键单击project-&gt;属性 在VC ++属性下,单击“包含目录”并添加dev / glew / include文件夹和dev / freeglut / include的路径。确保您的路径100%正确! 然后单击“库目录”并添加以下两个路径:dev / glew / lib和dev / freeglut / lib。
然后转到C / C ++并单击其他包含目录并添加以下两个路径:dev / glew / include和dev / freeglut / include。 然后转到链接器并在“其他库目录”中添加lib文件夹,这是一个棘手的问题,因为您需要链接到正确的版本:\ dev \ glew \ lib \ Release \ Win32
然后再次尝试您的代码,如果这不起作用,请尝试从互联网上获取源代码。 此外,如果您复制文件夹而不更改名称,则应包含“GL / glew.h” 使用openGL的每个项目都需要这些步骤。