100分求为什么会内存泄露
最近在做一个远程视频和屏幕传输程序,出现了一个很奇怪的现像,代码如下:
m_recJpg是一个TJpgImage动态创建的对像,有图片信息
VideoRemote是放在窗体上的一个TImage控件
下面是不断的更新内容的部分代码.代码一秒种大约运行15次,在主窗体中运行,没有在线程中。
VideoRemote.Picture.Bitmap.Canvas.Lock;
try
VideoRemote.Picture.Bitmap.Assign(m_RecJpg);
finally
VideoRemote.Picture.Bitmap.Canvas.Unlock;
end;
以上代码加入后就会出现内存泄露的问题,不加都很正常。
加入后VideoRemote上能正常显示视频,如果用鼠标点击,移动窗体时,有可能出现内存泄露问题,但如果没有去动。都比较正常
[解决办法]
不是内存泄露,是访问了无效的内存地址......
[解决办法]
不要以出现这个提示就说是内存泄露,你先跟踪代码看看出错的地方在哪,或许这跟图片无关
[解决办法]
内存地址无效
[解决办法]
直接在Form上绘画 试试
[解决办法]
VideoRemote.Picture.Bitmap.Assign(m_RecJpg);
执行的时候你能保证m_RecJpg 是存在的嘛?
[解决办法]
代码一秒种大约运行15次
也许这个过程访问时地址冲突
[解决办法]