昨天发现自己的游戏运行时内存一直缓慢增长,但是结束的时候检查不到内存泄漏。
今天又调试了5个小时,发现是在OnPaint()里面GetDC()和ReleaseDC()造成的。
但是同样的使用情况,在xyBackPaint里面又没有发现过类似问题。
后来查了下百度,发现这是MFC的一个BUG并且一直未修正,ReleaseDC()时只释放了GDI对象,未释放内存。
具体参见:http://support.microsoft.com/kb/819635/zh-cn
解决方法就是用win32API替换掉MFC方法。