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オブジェクトで削除を呼び出す必要がありますか? のようなものはimg_signinどうですか?多くの .NET オブジェクトと関数が原因でメモリ リークが発生していると考えられるようになりましたが、この領域にどのようにアプローチすればよいかわかりません。

4

0 に答える 0