关于程序内存泄露问题?
程序可以运行,奇怪的是只进入主菜单界面后,就退出程序,并不会提示内存泄露;
但是当程序进入主菜单界面后,再进入实际游戏场景后,退出程序后就会提示内存泄露问题。
该问题的产生是我在添加DirectInput组件后产生的。
但是初始化输入设备是在进入主菜单界面之前做的,而非进入实际游戏场景之前做的。
并且如果我只进入主菜单界面,就算有按键行为,退出时依旧没有内存问题;
但是如果进入了实际游戏场景,就算没有按键行为,退出时依旧会提示内存问题;
而且每次进入实际游戏场景后再退出时,编译器都会给出如下信息:(相同的)
Direct3D9: (ERROR) :Memory still allocated! Alloc count = 3057
Direct3D9: (ERROR) :Current Process (pid) = 00000fb4(这个每次不一定相同)
Direct3D9: (ERROR) :Memory Address: 028e07fc lAllocID=1 dwSize=00004bc4, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028e53f4 lAllocID=2 dwSize=00000350, ReturnAddr=648102fa (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028e577c lAllocID=3 dwSize=00000ef0, ReturnAddr=64816401 (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028f0064 lAllocID=5 dwSize=00006300, ReturnAddr=6481e508 (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028f639c lAllocID=6 dwSize=00001584, ReturnAddr=6480ec04 (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028f7954 lAllocID=7 dwSize=00000004, ReturnAddr=6480ed27 (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028e66a4 lAllocID=9 dwSize=000012fc, ReturnAddr=64803cab (pid=00000fb4)
.
.
.
.
.
Direct3D9: (ERROR) :Memory Address: 029dd4fc lAllocID=106 dwSize=0000002c, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 029dd55c lAllocID=107 dwSize=00000030, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 029dd5c4 lAllocID=108 dwSize=0000517c, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 048b0064 lAllocID=109 dwSize=00020020, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Total Memory Unfreed From Current Process = 3967089 bytes
请问如何解决这个问题?该如何调试?十分感谢了~~
但是当程序进入主菜单界面后,再进入实际游戏场景后,退出程序后就会提示内存泄露问题。
该问题的产生是我在添加DirectInput组件后产生的。
但是初始化输入设备是在进入主菜单界面之前做的,而非进入实际游戏场景之前做的。
并且如果我只进入主菜单界面,就算有按键行为,退出时依旧没有内存问题;
但是如果进入了实际游戏场景,就算没有按键行为,退出时依旧会提示内存问题;
而且每次进入实际游戏场景后再退出时,编译器都会给出如下信息:(相同的)
Direct3D9: (ERROR) :Memory still allocated! Alloc count = 3057
Direct3D9: (ERROR) :Current Process (pid) = 00000fb4(这个每次不一定相同)
Direct3D9: (ERROR) :Memory Address: 028e07fc lAllocID=1 dwSize=00004bc4, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028e53f4 lAllocID=2 dwSize=00000350, ReturnAddr=648102fa (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028e577c lAllocID=3 dwSize=00000ef0, ReturnAddr=64816401 (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028f0064 lAllocID=5 dwSize=00006300, ReturnAddr=6481e508 (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028f639c lAllocID=6 dwSize=00001584, ReturnAddr=6480ec04 (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028f7954 lAllocID=7 dwSize=00000004, ReturnAddr=6480ed27 (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 028e66a4 lAllocID=9 dwSize=000012fc, ReturnAddr=64803cab (pid=00000fb4)
.
.
.
.
.
Direct3D9: (ERROR) :Memory Address: 029dd4fc lAllocID=106 dwSize=0000002c, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 029dd55c lAllocID=107 dwSize=00000030, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 029dd5c4 lAllocID=108 dwSize=0000517c, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Memory Address: 048b0064 lAllocID=109 dwSize=00020020, ReturnAddr=6480d5ea (pid=00000fb4)
Direct3D9: (ERROR) :Total Memory Unfreed From Current Process = 3967089 bytes
请问如何解决这个问题?该如何调试?十分感谢了~~
...全文
相关推荐
解决Android使用Handler造成内存泄露问题
这种情况下,出现了内存泄露的问题,可能会导致OOM(内存溢出),程序出错。一、什么是内存泄露?内存泄露是指在Java虚拟机中,对象不再被任何引用所指向,但却无法被垃圾回收器回收的情况。
React-内存泄露常见问题解决方案.docx
在本文中,我们将讨论什么是内存泄露,React 中常见的内存泄露的情况,以及如何解决这些问题。什么是内存泄露?----------------程序的运行需要内存。
CString内存泄露HTML.rar
`求救:是内存泄露吗? - 边缘软件 - 棋牌游戏开发,棋牌游戏制做,棋牌游戏运营,棋牌游戏推广.htm`: 这篇文章可能是开发者在特定项目中遇到内存问题的求助,可能涉及CString。6.
JavaScript避开内存泄露及内存管理技巧_.docx
因此,了解如何避免内存泄露和有效地管理内存是非常重要的。本文将详细讲解JavaScript中的内存泄露问题和解决方案。一、什么是内存泄露?
C# 定时器保活机制引起的内存泄露问题解决
C# 定时器保活机制引起的内存泄露问题可以通过将定时器 Dispose 或者将定时器事件处理程序改为静态方法来解决。


