我已将图像(平铺)作为背景添加到从wxPanel继承的类中

在构造函数内部,下面的第二行导致内存泄漏(在调试模式下报告)

wxImage bg(_("images/textures/icobbg8.jpg"), wxBITMAP_TYPE_JPEG);

SetBackgroundBitmap(wxBitmap(bg));


如果我发表评论,则不再报告SetBackgroundBitmap内存泄漏。
注–在调试过程中,在查看了调用堆栈之后,我对了该语句进行了四舍五入。

请告诉我,如何克服内存泄漏。

最佳答案

您应该致电SetBackgroundBitmap(wxNullBitmap)
在你的破坏者中

Class MyPanel:public wxPanel
{
   MyPanel(wxWindow* parent, int x, int y, int w, int h);
   ~MyPanel();
};

MyPanel::~MyPanel()
{
   SetBackgroundBitmap(wxNullBitmap); //set null bitmap backgrond, so not
                                      //reference bg to overcome the leak
}

关于c++ - 由于SetBackgroundBitmap而导致的内存泄漏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8642559/

10-15 00:29