在WINCE6.0里做一个项目的时候,发现界面如果一直开着几小时就会假死,初步确认是内存泄漏。
通过代码分析+注释掉部分函数后发现,调用Invalidate()后,就会导致4KB内存泄漏,一直苦找原因无果
最后通过网友的讨论找到了原因,原来是我的OnEraseBkgnd里return true;后,如果Invalidate()不加参数直接调用的话,
那么它会默认参数是TRUE,要重画背景,但是背景我这里并没有只是直接return true了,这样的话就会导致内存泄漏,
但是实际的原因是BUG呢还是其它原因不得而知,解决方法很简单,使用加参数0就可以了,即Invalidate(0),这样就不会了!
发此小文以免以后有人还出现此错误。
参考:http://bbs.eeworld.com.cn/thread-145636-1-1.html