我正在尝试在VS13中编译此应用程序。 我以以下方式链接了所有库:
glew32.lib来自 glew-1.10.0\lib\Release\Win32
将glew32.dll放置在Debug文件夹中
链接glfw3
当我运行此代码时,它在glTexImage3D处抛出异常; 它说“访问地址0x00000000时出现侵犯许可。”
我注意到,如果我添加 ,该错误就会解决。
当我运行此代码时,它在glTexImage3D处抛出异常; 它说“访问地址0x00000000时出现侵犯许可。”
#include <GL/glew.h>
#include <GL/glfw3.h>
#include <cstdlib>
#include <iostream>
GLenum volumeTexture;
int main() {
// Initialize GLFW
if (!glfwInit()) {
std::cerr << "Failed to initialize GLFW! I'm out!" << std::endl;
exit(-1);
}
glewExperimental = GL_TRUE;
GLenum err = glewInit();
if (GLEW_OK != err)
{
/* Problem: glewInit failed, something is seriously wrong. */
fprintf(stderr, "Error: %s\n", glewGetErrorString(err));
}
// Use red to clear the screen
glClearColor(1, 0, 0, 1);
glGenTextures(1, &volumeTexture);
glBindTexture(GL_TEXTURE_3D, volumeTexture);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_BORDER);
glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA8, 256, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
我注意到,如果我添加 ,该错误就会解决。
glTexImage3D = (PFNGLTEXIMAGE3DPROC) wglGetProcAddress("glTexImage3D");
但是当我运行glGenFramebuffers时,我后来遇到了相同的异常(即使我注释掉了glTexImage3D的代码)。这是我链接方式有问题吗?