长时间用某软件导致菜单无法正常显示的问题

celerityok 2005-06-04 11:07:54
某软件,连续用上十个小时后发现内存用量大大增加,最后出现“无法获得所需要的资源”并无法执行下去,而且导致整个系统的菜单不能正常显示,即使关掉那个软件也一样,具体症状是,点击某处,无论是用鼠标左键还是右键,只要能激发菜单就可,但是菜单并不立即出现,必须将鼠标移动到菜单应该出现的位置上时才模糊出现应该在该处出现的菜单项,还不是出现整个菜单,如果都移遍了,可以出现整个菜单,但看起来有点模糊。这个时候注销都没用,必须重新启动系统才行。如果在那个软件出现那种情况之前关闭掉它,这个时候它的内存用量也已经很大了但还没有到崩溃吧,再重新打开那个软件,这时没有问题。

我能想到的解决办法:
隔一段时间检测那个软件的内存用量,如果超过某一阀值就把它关闭再重新打开一次。
但是我不知道怎么检测别的程序当前内存用量,请指教。

另外,从表面现象看那个软件是有点内存泄露,为什么又会造成不但它自己没法运行而且整个系统都有问题呢?您能不能详细解释一下出现所述问题的原因?
...全文
114 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyw2278 2005-06-05
  • 打赏
  • 举报
回复
这还不简单啊
去找开发这个软件的公司啊
这个肯定是资源泄漏啊
celerityok 2005-06-05
  • 打赏
  • 举报
回复
呵呵,您还没完全明白我的意思啊,是用别的公司的软件出现这样的问题,而不是自己开发的软件啊。有什么高招您尽管说。
airhand 2005-06-05
  • 打赏
  • 举报
回复
你虽然关闭了那个程序,但是他泄漏的内存只有等到你重启之后才能释放,打开几次后还是会OVER.
所以你这种方法没有用.

解决方法就是找软件公司重写程序.

rushinger 2005-06-05
  • 打赏
  • 举报
回复
装个内存回收和整理的软件
luxintian 2005-06-05
  • 打赏
  • 举报
回复
new--delete
Create--DeleteObject
招财猫_Martin 2005-06-05
  • 打赏
  • 举报
回复
如果不是一直稳定的增加内存的用量的话,肯定是在某点处有一个内存的泄漏点,最后导致消耗掉所有的资源.
1、最好的办法是获取源代码,进行单元测试,找出问题所在.
2、向软件的原制作单位报告此BUG
cooljjyy 2005-06-05
  • 打赏
  • 举报
回复
如果是已经编译好的软件,可以用一些使用Hook技术的DLL动态换肤工具,把这个软件的界面绘制接管。
cooljjyy 2005-06-05
  • 打赏
  • 举报
回复
估计是在SelectObject()的时候没有保存旧的handle,如果不取消SelectObject()好像这个object是不能释放内存的,如:

HC hDC = CreateCompatibleDC(...);
HBITMAP hBmp = CreateCompatibleBitmap(...);
SelectObject(hDC, hBmp);
...
DeleteObject(hBmp);
DeleteDC(hDC);

这样好象会导致hBmp没有释放。所以一般都这样用:
hOldBmp = (HBITMAP)SelectObject(hDC, hBmp);
...
SelectObject(hDC, hOldBmp);
DeleteObject(hBmp);
DeleteDC(hDC);

需要先把旧的句柄Select回去再释放。GDI里面这样的陷阱太多了,而且没有检查手段,防不胜防啊。
xundeng 2005-06-05
  • 打赏
  • 举报
回复
应该是操作系统不对应
那个软件适用哪个系统,你就用哪个系统好了。用关程序人方法是不可取的,要么干脆就不要用这个软件
celerityok 2005-06-05
  • 打赏
  • 举报
回复
可以考虑定时关一下再打开,这也勉强算个解决办法。
如何探测别的程序的正在使用的内存信息呢?这个问题还没有人解答。
ringphone 2005-06-05
  • 打赏
  • 举报
回复
是GDI资源泄露,我原来编写自绘制的菜单时就出现过。
idAnts 2005-06-04
  • 打赏
  • 举报
回复
你的那个办法是治标不治本啊!肯定是有资源泄露,你的菜单是怎么加载的?
蒋晟 2005-06-04
  • 打赏
  • 举报
回复
很像GDI资源泄露的症状
celerityok 2005-06-04
  • 打赏
  • 举报
回复
怎么,就没有高人来指点一二?
celerityok 2005-06-04
  • 打赏
  • 举报
回复
另外不知您还有什么高招?

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧