编译的c语言程序崩溃,c – glGenBuffers在Release Build中崩溃

我在使用OpenGL函数glGenBuffers()时面临一个奇怪的问题.

我正在编写一个相当简单的应用程序,其中我使用以下列方式声明的VBO:

#include

#include

class MyClass : public QGLWidget, protected QGLFunctions {

GLuint vertexBufferObject;

// ...

GLuint makeBufferList(void);

}

GLuint MyClass::makeBufferList(void) {

vertexBufferObject = 0;

glGenBuffers(1, &vertexBufferObject); //

// ... load data and render

return vertexBufferList;

}

MyClass::MyClass(QWidget* parent)

: QGLWidget(parent),

vertexBufferObject(0)

{

QGLContext* context = new QGLContext(this->format());

initializeGLFunctions(context);

glInit();

}

MyClass::~MyClass() {

glDeleteBuffers(1, &vertexBufferObject);

}

这一切在Debug Build中完全正常.数据渲染得很好,所有程序最终都能正确完成.

但是,在Release Build中,glGenBuffers()会使程序崩溃.它不仅返回0或什么都不做,它在函数调用时崩溃.但由于问题只发生在Release模式下,我无法使用调试器找出出错的地方.

我正在研究Windows 7系统并在Qt 4.8.1中进行开发.编译器是MSVC 2010(Qt SDK)编译器.

有没有人有任何我可能会尝试的建议?

//编辑:

也许有用的知道:我尝试使用GCC(Qt SDK)编译器在Mac上编译完全相同的代码,并且Debug和Release Build都可以正常工作.但在Windows 7上,问题仍然存在.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值