作者:蜡烛8882007 | 来源:互联网 | 2023-09-02 20:17
最近做一个考勤系统,在vs2010中完成,在xp系统上运行,程序长时间运行后画面会变散乱,考虑过时内存泄露的原因,但是就算运行了一天,内存最多增至十几M,对系统没什么影响吧。具体点,一个编辑框中做了一
最近做一个考勤系统,在vs2010中完成,在xp系统上运行,程序长时间运行后画面会变散乱,考虑过时内存泄露的原因,但是就算运行了一天,内存最多增至十几M,对系统没什么影响吧。具体点,一个编辑框中做了一个电子时钟,就是这个编辑框会跑到屏幕最上边。实在不知道什么原因造成的,又遇到过的朋友,给点建议啊。谢啦
5 个解决方案
界面 基本上就是GDI资源泄露。
开开你的程序,打开任务管理器,看看GDI资源涨不涨
前几楼的说了问题所在,我也遇到过同样的问题,说得简单点就是变乱的部分界面你没有重绘。画出图来过后你要保存图像的位图句柄,也就是图像在内存中的映象,要有更改的话所有需要改变的部分都要重绘,比如时钟指针的移动,既要画出新指针,也要擦掉旧指针。占内存多肯定是内存泄漏,举一个简单的例子,TextOut函数输出字符串,如果用TextOut(x, y, "abc");重复使用就会造成泄漏,因为"abc"是常量驻在内存,不停使用就不信产生。对这个问题,你可以先定义一个指针变量把字符串地址保存下来,以后每次都用这个指针。这是在我刚开始写程序的时候遇到过的,好久不用VS不知道新版本有没有对这个问题处理过。画图出是一个道理,而且图像更占内存,图像句柄不保存就会成为野指针,多次画图就不断增加内存使用量,所以申请了内存就保存下来,以后都在这里修改。
问题已经解决,是因为我用了Font ,没有释放的原因,结果越积越多,最后导致这样的后果,谢谢各位!