终于上来了,昨天一整天都进不来!
我昨天把问题解决了,嗨!其实这只是一个小问题,只是大家都忙于研究MIS方面的问题去
了,对图像处理中这样的小问题却是无暇顾及。实际上问题并不是出在线程不同步上,而
是出在图像格式转换上,这正符合我一开始的怀疑:
...
else if (PicInfo[PicIndex].FileType == 2){ //资源为Jpeg图片
//tmpjpg是一个TJPEGImage*,由FormCreate时初始化
//怀疑以下两句可能有导致内存泄漏的因素
tmpjpg->LoadFromStream(MM);
<font color=red><B>Dest->Assign(tmpjpg);</B></font> //正是这一句是罪魁祸首!
}
...
正确的方法应该是:
Dest->Width = tmpjpg->Width;
Dest->Height = tmpjpg->Height;
Dest->Canvas->Draw(0,0,tmpjpg);
只能画上去,而不能Assign!(反过来,Bmp转为JPEG时却是可以用Assign的),通过Assign
把一幅JPEG赋给Bmp,看起来一切正常,但内存却不会被释放。我拷!害得我这么苦!
我的200大分哪,啧啧……这不等于花200分来给人上一堂课吗……
不行,我要再问两个小问题,心理才平衡。(立即发分)
1、怎么调用默认的浏览器来打开一个网站?我用ShellExecute结果不行:
ShellExecute(Handle,"open","http://netit.com.cn/",0,0,SW_SHOW);
2、暂不问,也许不用问了。