0

以下のコードを実行するたびに、アプリケーションのタスク マネージャーのメモリが際限なく増加し続けます。ここでスタックオーバーフローで同様の質問を見つけ、彼らが述べたようにいくつかの DeleteObject 呼び出しを行いましたが、このコードの実行時に増え続けるメモリを解決しませんでした。

これはどのように解決できますか?私は何を間違っていますか?

SetControlPicture(const UINT ID_PICTURE_CONTROL)
{
CImage image;
CBitmap bitmap;
HRESULT hresult;    
CStatic* pItem = (CStatic*)GetDlgItem(ID_PICTURE_CONTROL);

hresult = image.Load(_T("./Data/Images/RED_ON.png")); 
                if(hresult != E_FAIL)
                {
                    HBITMAP hBitMap = image.Detach();
                    bitmap.Attach(hBitMap);
                    HBITMAP hBitMapPrev =  pItem->SetBitmap(bitmap);        
                    if (hBitMapPrev)
                    {
                        DeleteObject(hBitMapPrev); // *** do not forget to delete the previously associated bitmap
                    }
                 DeleteObject(hBitMap); 
                }
}
4

1 に答える 1