我的程序是opengl+VC做的,在MFC下实现
运行程序时,内存直线上升,10秒左右就差不多死机了
我建立了个类,是绘制一些图形的
在void CFIRSTView::OnDraw(CDC* pDC)调用
CFIRSTDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity(); m_bsipic=new bsipic();
m_bsipic->light0(0,10,-20,128);
// m_bsipic->LoadGLTexture();
m_bsipic->picter(4,-4,-10); //显示组合图形
m_bsipic->airplane(0,8,-50); //组合飞机 glFlush();
::SwapBuffers(m_pDC->GetSafeHdc());咨询了别人,说是内存泄漏,我检查了下,应该是m_bsipic=new bsipic();的问题
清除缓存的语句是不是要加:delete m_bsipic;
放在哪里好呢?具体的该怎么做啊?
请大家帮忙,谢谢了!
运行程序时,内存直线上升,10秒左右就差不多死机了
我建立了个类,是绘制一些图形的
在void CFIRSTView::OnDraw(CDC* pDC)调用
CFIRSTDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity(); m_bsipic=new bsipic();
m_bsipic->light0(0,10,-20,128);
// m_bsipic->LoadGLTexture();
m_bsipic->picter(4,-4,-10); //显示组合图形
m_bsipic->airplane(0,8,-50); //组合飞机 glFlush();
::SwapBuffers(m_pDC->GetSafeHdc());咨询了别人,说是内存泄漏,我检查了下,应该是m_bsipic=new bsipic();的问题
清除缓存的语句是不是要加:delete m_bsipic;
放在哪里好呢?具体的该怎么做啊?
请大家帮忙,谢谢了!
解决方案 »
- vc 的 static 写字控件中,如何把字符串写的均匀散开?
- windows驱动开发求助
- 高分求教树型控件操作的问题
- 求教:MFC添加多个文件到CListBox中显示出错
- 还是RichEdit的问题,对RichEdit没有研究和兴趣的兄弟就别进了
- 问一下,有人知道如何判断用户指定的一个新的文件路径是否有效合法的代码么?
- 为什么在WIN2000下正常运行但在WIN98下出现非法操作
- shellexecute如何自动发送邮件
- vc-->vb问题!!DLL中的AfxGetResourceHandle()用VB不可调用?
- 紧急呼救:利用VC ClassWizard创建一个新类,后发现此新类有误,怎样删除???现程序编写已无法进行!
- ::AnimateWindow(m_hWnd,200,AW_SLIDE |AW_HOR_POSITIVE|AW_HIDE);出现残影!
- 请教关于CDC资源释放的问题。
bsipic* m_bsipic;
谢谢,刚试下来,确实问题解决了,不过有出来了个新的问题我在类bsipic中的构造函数中有纹理
bsipic::bsipic()
{
g_text = gluNewQuadric();
LoadT8("aa.BMP",g_cactus[0]);
LoadT8("bb.BMP",g_cactus[1]);
}
这样的话,程序运行中,贴图确实不能显示了
还要麻烦你指导下了
然后再New出这个对象。在析构函数中,也判断是否为Null,非Null就Delete之。
就算是用双缓存也会有泄漏呀。我也遇到这个问题了,每次增加12k,又找不到能用得起来的boundcheck,烦恼呀~~~~~
现在已经正常了,谢谢你了啊