フレーム バッファ オブジェクト (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");
⇒アクセス違反が残っています。
GT9800 Nvidia カードを持っているため、別のヘルプ スレッドで NVIDIA OpenGL SDK をダウンロードするように誘導されました。「アクセス違反」は削除されませんでした。
Borland Builder 6 で GLee と Glew を使用してみました:
Borland に Glew を含めるには、まず Visual Studio の「coff」lib を coff から borland ビルダーの「omf」lib に変換する必要があります。
しかし、borland コマンド スクリプト「coff2omf.exe」を使用すると、「無効なマシン タイプ」というエラー ラベルが表示されます。「objconv.exe」を使用すると、「インポート ライブラリをスタティック ライブラリに変換できません」というエラーが表示されます。
=> Glew の「coff」ライブラリを Borland Builder 形式の「omf」に変換する方法を知っている人はいますか?
=> 「インポート ライブラリ」を「静的ライブラリ」に変換するにはどうすればよいですか?