为什么会报 out of system Resource 呢 ( 积分: 100 )

  • 主题发起人 主题发起人 xukaiming
  • 开始时间 开始时间
X

xukaiming

Unregistered / Unconfirmed
GUEST, unregistred user!
在定时回调函数里内容 如下:

SetDIBitsToDevice(Bmp->Canvas->Handle, 0, 0, Bmp->Width, Bmp->Height,
0, 0, 0, pBMIInfo->bmiHeader.biHeight,
pBuffer, pBMIInfo, DIB_RGB_COLORS);
Jpg->Assign(Bmp);
Jpg->CompressionQuality = 40; //压缩质量
Jpg->Compress();

结果几次循环下来,在SetDIBitsToDevice 和 Compress处就抛出异常,内容是"out of system resource"
这个异常截获之侯不知如何处理,结果他向上抛出。
BMP和JPG在FormCreate函数里建立的,在FormDestory里销毁,免得重复建立
 
在定时回调函数里内容 如下:

SetDIBitsToDevice(Bmp->Canvas->Handle, 0, 0, Bmp->Width, Bmp->Height,
0, 0, 0, pBMIInfo->bmiHeader.biHeight,
pBuffer, pBMIInfo, DIB_RGB_COLORS);
Jpg->Assign(Bmp);
Jpg->CompressionQuality = 40; //压缩质量
Jpg->Compress();

结果几次循环下来,在SetDIBitsToDevice 和 Compress处就抛出异常,内容是"out of system resource"
这个异常截获之侯不知如何处理,结果他向上抛出。
BMP和JPG在FormCreate函数里建立的,在FormDestory里销毁,免得重复建立
 
好像是TBITMAP的一个BUG。以前讨论过了。需要你在使用TBITMAP的时候加上LOCK和UNLOCK。你再找找看!
 
我记得这个bug好像是只LOCK不UNLOCK是吗?我没有看过VCL源马
 
我读取BMP->LockCount,是等于0的,应该不是这个原因
 
我以前写的一个程序,使用了多线程,也是这样,后来加上LOCK以后,转换上千张图片没有问题!
 
太感谢了,双手献分
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
593
import
I
后退
顶部