IImage 不能同时显示两张图片???????

3 views
Skip to first unread message

Chunlin Zhang

unread,
Jun 28, 2009, 10:21:45 PM6/28/09
to BREW 中国开发者讨论组
http://topic.csdn.net/u/20090601/18/931c6fb3-ba46-4621-af67-0d0bb7945adf.html

 
 

Sent to you by Chunlin Zhang via Google Reader:

 
 

via topic.csdn.net on 6/28/09

引用 3 楼 sleeping_dx 的回复:
每一个接口都继承自IBase接口, IBase接口为每一个继承它的接口维护一个引用计数器, 也就是说, 真正接口实例对象只有一块内存, 而要加载多张资源, 只能先释放前边的实例, 然后再加载后边的资源, 否则后边的资源加载失败!!!!!

请问倘若我要使用上面的方法加载两张IImage图片, 钱一张还不能释放 如何办到呢


楼主您的p1和p2已经是2个独立的对象了,计数器对单个的对象才有意义


俺对该问题的猜测:
1.楼主可以确认一下那2个图片的大小,是不是你图片太大,设备上内存太小?

2.IImage对象的个数好象没有限制,但是IFileMgr对象的个数是一定的,ISHELL_LoadImage会创建IFileMgr,假如你以前一直ISHELL_CreateInstance(AEECLSID_FILEMGR)而没有IFILEMGR_Release,也会造成失败

楼主可以这样分析,
<p1 = ISHELL_LoadImage 为什么没有判空呢?异常分支没处理>
先看看 p1,p2为空不,假如不为空,
可以IIMAGE_GetInfo,看看p1,p2的属性

 
 

Things you can do from here:

 
 
Reply all
Reply to author
Forward
0 new messages