私はGDI +で作業しようとしていますが、私は奇妙なメモリリークに遭遇しています。私はvector
のGdiplusBase
ポインタを持っていて、それらのすべてが動的に作成されています。奇妙なことは、例えば、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];
が正しく動作し、メモリを解放しないでください。私はここで何か悪いことをしていますか?