我一直在使用 .NET 和 C++,而且我当然不是使用指针的初学者(尽管我不完全确定 HANDLES 在内存中的使用方式)。
我最担心的是:我编写了一些代码,可以在自定义表单(关闭按钮)上呈现图像。我发现每次将按钮悬停在任务管理器上时,程序都会消耗越来越多的内存。
我对登录按钮也有类似的问题。代码如下:
private: void signinbutton_VirtualPaint() {
if(in_signin && !on_signin) //variables for if the mouse is in range
signinbutton->BackgroundImage = img_signin_hover;
else if(in_signin && on_signin)
signinbutton->BackgroundImage = img_signin_click;
else
signinbutton->BackgroundImage = img_signin;
}
图像定义如下:
img_signin = (cli::safe_cast<System::Drawing::Image^ >(rm->GetObject("btn_signin")));
使用一个Resources::ResourceManager
对象。将鼠标悬停在该按钮上会导致越来越多的内存被消耗(尽管增加很小,但确实会发生)。
'gcnew'
这让我对这些物体产生了怀疑。我需要对gcnew
对象调用 delete 吗?之类的东西img_signin
呢?我开始看到很多 .NET 对象和函数导致我认为是内存泄漏,我不确定如何处理该区域。