GDI +로 작업하려고하는데 이상한 메모리 누수가 발생합니다. 나는 GdiplusBase
포인터의 vector
을 가지고 있으며, 모두 동적으로 생성됩니다. 이상한 점은, 그러나,이다 것을 나는GdiplusBase *로 포인터를 삭제할 때 GDI +에서 메모리 누수가 발생합니까?
vector<GdiplusBase*> gdiplus;
gdiplus.push_back(new Image(L"filename.jpg"));
delete gdiplus[0];
개체를 삭제하고 메모리 누수 (작업 관리자에 따라)되지 않으며, 예를 들면 GdiplusBase
포인터로 개체를 삭제하려고합니다. 그러나 원래 포인터로 다시 캐스트 한 다음 삭제하면
delete (Image*)gdiplus[0];
개체가 올바르게 삭제됩니다. 이것에 관한 이상한 점은, 내가 말할 수있는 한, (MSDN에 의하면) GdiplusBase
is the base class of all GDI+ objects and owns the delete operators for all of them입니다. 이 경우 delete gdiplus[0];
이 올바르게 작동하고 메모리를 비우지 않아야합니까? 내가 여기서 뭐 잘못하고 있니?