gpt4 book ai didi

c++ - 调用 glBufferData() 时随机 "unhandled exception"

转载 作者:行者123 更新时间:2023-11-28 02:42:50 25 4
gpt4 key购买 nike

我有一些运行完美的 OpenGL 代码,但时不时地(大约每五次左右)当我尝试启动该程序时,它会因未处理的异常而崩溃:

Unhandled exception at 0x5CE5F86E (atioglxx.dll) in Main.exe: 0xC0000005:
Access violation reading location 0x07388000.

它指向的行只是一个简单的 glBufferData() 调用:

glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_indices.size() * sizeof(GLuint), &m_indices[0], GL_STATIC_DRAW);

有什么我可以做的吗?还是显卡驱动问题?我确实安装了最新的驱动程序(该卡是 Radeon 290X)。崩溃确实不一致;在没有任何更改的情况下,如果我只是继续启动该程序,它通常需要几次才能执行此操作。

最佳答案

从您的评论来看,您的字体大小似乎不匹配,将您的调用更改为

lBufferData(
GL_ELEMENT_ARRAY_BUFFER,
m_indices.size() * sizeof m_indices[0],
m_indices.data(),
GL_STATIC_DRAW
);

你也可以使用像下面这样的小辅助函数来减少垃圾(这有助于避免这样的错误)

template<typename T, typename Allocator>
size_t sizeof_vec(std::vector<T, Allocator> const& v)
{
return v.size() * sizeof(T);
}

lBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof_vec(m_indices), m_indices.data(), GL_STATIC_DRAW);

关于c++ - 调用 glBufferData() 时随机 "unhandled exception",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com