c++ - openGL - 调用 glMatrixMode(...) 时出现访问冲突

标签 c++ opengl sdl c++builder c++builder-10-seattle

我目前正在使用 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(...),代码“有效”,这意味着会弹出一个窗口但不显示任何内容。所以 MatrixMode 似乎是这里的问题。

最佳答案

万一有人通过谷歌找到这个帖子:

我为 Borland 编译器下载了 opengl32.lib 和 gl32.lib。 那些文件显然被破坏了。不知道来源了,但使用名为 bc_libs.zip 的文件时要小心

我自己用 windows/system32 中的 .dll 创建了 .lib。

关于c++ - openGL - 调用 glMatrixMode(...) 时出现访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35862764/

相关文章:

c++ - 使用 C API 漂亮地打印 Z3

c++ - 无法使用启用的 BullseyeCoverage 和 Casablanca REST SDK 编译 Visual Studio 2013 C++ 项目

c - 如何在 GLSL 中使用指针

c++ - 立方图上的 OpenGL 奇怪的红绿蓝线重复三次

c++ - 如何使构建在 SDL 之上的库不需要 SDL 头文件

c++ - 无窗口栏 SDL C++ 应用程序

c++ - 程序运行时没有任何反应(并且没有创建窗口)

C++ 多态性错误 : no matching function for call to

OpenGL 规范规定 `GLint` 必须是 32 位宽,但 gl.xml 天真地将其定义为 `int` 而不是 `int32_t` 。为什么?

c++ - _dopr 是什么意思