4279|7

65

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

为什么我的IImage对象释放时出现错误 [复制链接]


如题:
IImagingFactory *g_pImgFactory;
//COM初始化省略
IImage *pImage;
//装载资源
  HRSRC hr;//资源句柄
   hr = FindResource(hInst,MAKEINTRESOURCE(dwImageID),RT_RCDATA);
  HGLOBAL hglobal= LoadResource( hInst, hr );       
  LPVOID   lpVoid  = NULL;
  lpVoid = LockResource(hglobal);
   int nSize = 0;
  nSize = (UINT)SizeofResource(hInst, hr);
  if(nSize <= 0){return FALSE;}
  HRESULT ret1 =g_pImgFactory->CreateImageFromBuffer((BYTE*)hglobal, nSize,    BufferDisposalFlagGlobalFree , (IImage**)pImage);
UnlockResource(hglobal);
//画大到DC中
  m_pImage->Draw(dc->GetSafeHdc(), &rc, NULL);

以上代码都无问题,而且可以正确显示图片,但是为什么 我接下来调用m_pImage->Release()程序就会出现异常?
如果不释放IIMAGE资源的话整个程序不停的在两个窗体间切换,会造成严重的内存泄露(经试验是油资源图片引起的)
谁能帮帮我啊???


       

最新回复

本公司专业承接PCB印制线路板厂家。主要生产单,双以及多层线路板,盲孔,高频板等。最小孔径0.15mm,是小线距0.1mm. 表面处理:防氧化,镀金,镀锡.无铅工艺等等.质量保证,交货及时.最快24小时交货,月产量1.2万个平方米.本企业已经过ISO9000:2000/ISO14001质量休系/环保体系国际认证和UL认证.以及欧洲环保认证(ROHS认证).双赢互利是我们的一贯经营理念。我们期盼与业内朋友放眼世界、展望未来、携手并进、齐享高科技的结晶,共创辉煌! (24小时提供PCB相关技术支持!欢迎您与我们联系) 联系人:萧先生 深圳市奔强电路有限公司 www.szbq168.com TEL:0755-29606209    13798334626 MSN:xhg26270001pcb@hotmail.com SKYPE:LTDLFPCB      QQ:426617608 邮箱:BQPCB@VIP.163.COM   详情 回复 发表于 2007-11-8 09:53
点赞 关注

回复
举报

67

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
补充:我的图片资源是放在DLL中调用的hInst句柄
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
写错了pImage和m_pImage是同一个
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
(IImage**)pImage); 这个地方怎么用的强制转换?我觉得应该是&pImage
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
我写错了,是&pImage
但问题不在这里
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
  1. BOOL CPicPlayer::GetImageInfo(const TCHAR * filename,int &picHeight,int &picWidth)
  2. {
  3.         IImagingFactory *pImgFactory = NULL;
  4.         IImage *pImage = NULL;
  5.         ImageInfo imageInfo;


  6.         CoInitializeEx(NULL, COINIT_MULTITHREADED);

  7.         if (SUCCEEDED(CoCreateInstance(CLSID_ImagingFactory,
  8.                                                                    NULL,
  9.                                                                    CLSCTX_INPROC_SERVER,
  10.                                    IID_IImagingFactory,
  11.                                    (void **) &pImgFactory)))
  12.         {
  13.                 if (SUCCEEDED(pImgFactory->CreateImageFromFile(filename, &pImage)))
  14.                 {
  15.                         pImage->GetImageInfo(&imageInfo);
  16.                         picWidth = imageInfo.Width;
  17.                         picHeight = imageInfo.Height;
  18.                         pImage->Release();
  19.                 }
  20.                 else
  21.                 {
  22.                         pImgFactory = NULL;
  23.                         pImage = NULL;
  24.                         CoUninitialize();
  25.                         return FALSE;
  26.                 }
  27.                 pImgFactory->Release();
  28.         }
  29.         else
  30.         {
  31.                 pImgFactory = NULL;
  32.                 pImage = NULL;
  33.                 CoUninitialize();
  34.                 return FALSE;
  35.         }
  36.         pImgFactory = NULL;
  37.         pImage = NULL;
  38.         CoUninitialize();
  39.         return TRUE;
  40. }
复制代码


反正我这样做的是没问题的,你看看你初始化是不是有问题?
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

7
 
五毛兄~~~
   我也发现问题了,我用CreateImageFromFile,然后释放就没问题
只要改成CreateImageFromBuffer释放就会出错
问题出在哪里呢?
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

8
 
本公司专业承接PCB印制线路板厂家。主要生产单,双以及多层线路板,盲孔,高频板等。最小孔径0.15mm,是小线距0.1mm. 表面处理:防氧化,镀金,镀锡.无铅工艺等等.质量保证,交货及时.最快24小时交货,月产量1.2万个平方米.本企业已经过ISO9000:2000/ISO14001质量休系/环保体系国际认证和UL认证.以及欧洲环保认证(ROHS认证).双赢互利是我们的一贯经营理念。我们期盼与业内朋友放眼世界、展望未来、携手并进、齐享高科技的结晶,共创辉煌! (24小时提供PCB相关技术支持!欢迎您与我们联系)
联系人:萧先生
深圳市奔强电路有限公司 www.szbq168.com
TEL:0755-29606209    13798334626
MSN:xhg26270001pcb@hotmail.com
SKYPE:LTDLFPCB      QQ:426617608
邮箱:BQPCB@VIP.163.COM
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表