由于 SetBackgroundBitmap 导致的内存泄漏
我已将图像(平铺)作为背景添加到继承自 wxPanel 的类
在构造函数内,下面的第二行导致内存泄漏(在调试模式下报告)
wxImage bg(_("images/textures/icobbg8.jpg"), wxBITMAP_TYPE_JPEG);
SetBackgroundBitmap(wxBitmap(bg));
如果我注释 不再报告 SetBackgroundBitmap
内存泄漏。 注意 - 在调试过程中,在查看调用堆栈后,我对此语句进行了四舍五入。
请告诉我,如何克服内存泄漏。
I have added a image (tiled) as a background to a class inheriting from wxPanel
Inside the constructor, the second line below is causing memory leakage, (reported in debug mode)
wxImage bg(_("images/textures/icobbg8.jpg"), wxBITMAP_TYPE_JPEG);
SetBackgroundBitmap(wxBitmap(bg));
If i comment the SetBackgroundBitmap
memory leak is no longer reported.
Note - During debugging, and after viewing call stack i rounded on this statement.
Please tell me, how to overcome memory leak.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该调用
SetBackgroundBitmap(wxNullBitmap)
在你的析构函数中
Your should call
SetBackgroundBitmap(wxNullBitmap)
in your destructor
当构造函数退出时,wxImage bg将被销毁。然而,类仍然存在,并且仍然需要背景图像。
尝试将 bg 从本地属性更改为类的属性。
When the constructor exits, the wxImage bg will be destroyed. However, the class still exists and the background image is still needed.
Try changing the bg from a local to an attribute of the class.