0

我一直在使用 .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 对象和函数导致我认为是内存泄漏,我不确定如何处理该区域。

4

0 回答 0