我在帧缓冲区对象 (FBO) 的命令 glGenFramebuffersEXT 上有一个“访问冲突”:
void TGLForm::DrawScene()
{
wglMakeCurrent(ghDC, ghRC);
glEnable(GL_TEXTURE_2D);
GLuint framebuffer, texturefbo;
GLenum status;
glGenFramebuffersEXT(1, &framebuffer); // access violation here
建立了一个关于 FBO 的帮助线程,我检查了 glext.h 初始化是否正常,并以这种方式在预处理器行中重复:
#include "glext.h"
#include "wglext.h"
extern PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)wglGetProcAddress("glGenFramebuffersEXT");
extern PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)wglGetProcAddress("glBindFramebufferEXT");
extern PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)wglGetProcAddress("glFramebufferTexture2DEXT");
extern PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)wglGetProcAddress("glCheckFramebufferStatusEXT");
extern PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)wglGetProcAddress("glGenRenderbuffersEXT");
extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)wglGetProcAddress("glBindRenderbufferEXT");
extern PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)wglGetProcAddress("glRenderbufferStorageEXT");
extern PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)wglGetProcAddress("glFramebufferRenderbufferEXT");
=> 访问冲突仍然存在。
另一个帮助线程促使我下载 NVIDIA OpenGL SDK,因为我有一张 GT9800 Nvidia 卡:它没有删除“访问冲突”。
我尝试在 Borland Builder 6 中使用 Glee 和 Glew:
要在 Borland 中包含 Glew,首先需要将 Visual Studio "coff" lib 从 coff 转换为 borland builder "omf" lib,
但是使用 borland 命令脚本“coff2omf.exe”我得到这个错误标签:“无效的机器类型” - 使用“objconv.exe”我得到这个错误:“导入库无法转换为静态库”。
=> 有人知道我如何成功地将 Glew "coff" lib 转换为 Borland Builder 格式 "omf" 吗?
=> 我们如何将“导入库”转换为“静态库”?