-1

我正在尝试在 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 都未定义。除了#include windows.h 和 gl/gl.h 和 OpenGL 应该可以工作之外,我找不到任何可以告诉我该怎么做的东西。

在此先感谢您的帮助:)

编辑:

感谢您的回复,我将这些行添加到链接器的附加依赖项中:

opengl32.lib glu32.lib

并正确大写函数调用这似乎已经解决了问题。

4

2 回答 2

0

这是您在 Visual Studio 12 中正确链接的方式:

您创建的第一件事是一个名为“dev”(或实际上是任何名称)的文件夹。在该文件夹中,您提取“freeglut”(仅当您需要窗口工具包时)和“glew”(openGL 扩展牧马人,这会加载 gl 函数)。

之后,您在 VS12 中打开一个新项目并右键单击项目-> 属性在 VC++ 属性下单击“包含目录”并将路径添加到您的 dev/glew/include 文件夹和您的 dev/freeglut/include。确保您的路径 100% 正确!然后单击“库目录”并添加这 2 个路径:dev/glew/lib 和 dev/freeglut/lib。

然后转到 C/C++ 并单击其他包含目录并添加这 2 个路径:dev/glew/include 和 dev/freeglut/include。然后转到链接器并在“其他库目录”中添加 lib 文件夹,这是一个棘手的问题,因为您需要链接到正确的版本:\dev\glew\lib\Release\Win32

然后再次尝试您的代码,如果这不起作用,请尝试来自互联网的源代码。此外,如果您在不更改名称的情况下复制了文件夹,则应包括“GL/glew.h”这些步骤对于每个使用 openGL 的项目都是必需的。

于 2013-08-10T15:43:29.133 回答
0

这些函数glreadbuffer()glreadpixelsOpenGL 中不存在。该 API 使用 CamelCase 函数名称样式,因此这些函数名称拼写glReadBuffer()glReadPixels().

于 2013-08-10T15:26:57.573 回答