openGL - 调用 glMatrixMode(...) 时出现访问冲突
openGL - Access Violation when calling glMatrixMode(...)
我目前正在使用 SDL 1.2.4 和 C++Builder 10.0 Seattle。我已经设置了一个简单的测试程序来检查是否一切正常。
以下代码编译时没有警告或错误,但给我一个运行时错误:
Exception-Klasse $C0000005 mit Meldung 'access violation at 0x68cc46f5: read of address 0x00001701'. Prozess Project1.exe (2624)
int _tmain(int argc, _TCHAR* argv[]) {
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(70,(double)640/480,1,1000);
while (true) {
SDL_PumpEvents();
}
return 0;
}
如果我删除 glMatrixMode(...)
,代码 "works",意思是 window 弹出但什么都不显示。所以 MatrixMode 似乎是这里的问题。
如果有人通过 google 找到此主题:
我为 Borland 编译器下载了 opengl32.lib 和 gl32.lib。
那些文件显然被破坏了。不知道来源了,但使用名为 bc_libs.zip
的文件时要小心
我自己用 windows/system32 中的 .dll 创建了 .lib。
我目前正在使用 SDL 1.2.4 和 C++Builder 10.0 Seattle。我已经设置了一个简单的测试程序来检查是否一切正常。
以下代码编译时没有警告或错误,但给我一个运行时错误:
Exception-Klasse $C0000005 mit Meldung 'access violation at 0x68cc46f5: read of address 0x00001701'. Prozess Project1.exe (2624)
int _tmain(int argc, _TCHAR* argv[]) {
SDL_Init(SDL_INIT_VIDEO);
SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(70,(double)640/480,1,1000);
while (true) {
SDL_PumpEvents();
}
return 0;
}
如果我删除 glMatrixMode(...)
,代码 "works",意思是 window 弹出但什么都不显示。所以 MatrixMode 似乎是这里的问题。
如果有人通过 google 找到此主题:
我为 Borland 编译器下载了 opengl32.lib 和 gl32.lib。 那些文件显然被破坏了。不知道来源了,但使用名为 bc_libs.zip
的文件时要小心我自己用 windows/system32 中的 .dll 创建了 .lib。