Trying to spot a memory leak I have finally arrived at this part of code below.
In it, 'Some operations' corresponds to plotting a geometrical shape with a specific colour and 'More operations' means plotting another shape with a different colour.
When the CreateSolidBrush, SelectObject and DeleteObject functions are commented out the code executes fine without any leaks at all -the total number of GDI objects in the Task Manager stays constant- whereas when they are active, the GDI objects rapidly increase due to the loop. The 'More operations' part involves calling a sub where a different brush is created and destroyed with code similar to that in the calling sequence.
Code:For k = 1 to N hBrush = CreateSolidBrush(SomeColor) hOldBrush = SelectObject(MyBackBuffer, hBrush) ‘ Some operations here... ‘ ... SelectObject MyBackBuffer, hOldBrush DeleteObject hBrush ‘ More operations here... ‘ ... Next


Reply With Quote