关于程序内存泄露问题?

virtualzege virtualzege 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
程序可以运行,奇怪的是只进入主菜单界面后,就退出程序,并不会提示内存泄露;

但是当程序进入主菜单界面后,再进入实际游戏场景后,退出程序后就会提示内存泄露问题。

该问题的产生是我在添加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

请问如何解决这个问题?该如何调试?十分感谢了~~
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
virtualzege
C++ 语言 65,214 成员 250,514 内容