4373|8

58

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EVC4.0下如何加载gif格式的图片?如何使用IImage 接口? [复制链接]

我试了好多办法都不行,最接近的办法是用IImage接口。但是
在工程setting 里link处添加Imaging.lib
添加头文件
#include "imaging.h"
#include "initguid.h"之后仍然报错,说找不到imaging.h文件。
向高手求助,急!

最新回复

你的平台上没有加入静态图像的组件,所以所引用的类没有注册。 需要重新定制你的平台,定制时选上 graphics and multimedia ...-> imaging -> still image decoders -> GIF Decode 这个组件,或者直接在配置文件中置SYSGEN_IMAGING_GIF_DECODE为1,然后重新生成平台,平台会将Imaging.lib加入到os中并注册,你的程序应该就可以在成功跑起来了。 如果平台不是你自己定制的,或者你不能更改,那么也可以将Imaging.dll通过应用程序自己注册到os中,然后就可以使用ImagingFactory了  详情 回复 发表于 2007-6-7 11:43
点赞 关注

回复
举报

68

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
刚刚解决了这个问题,但是还是不行,报错
error LNK2001: unresolved external symbol _CLSID_ImagingFactory
error LNK2001: unresolved external symbol _IID_IImagingFactory
高人求助!多谢!
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
应该是在“#include”最前面定义一个什么宏,记不清了。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个问题也搞定了,但是程序运行不正确,对话框出现了,图片没有显示,但是也没有报错。怎么回事呢?我的图片就放在程序的文件夹里。filename写的是“test.gif”.
继续求助!
 
 
 

回复

95

帖子

0

TA的资源

一粒金砂(初级)

5
 
文件名写全路径,CE没有当前路径的概念
每次都必须写全路径的。
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

6
 
CoCreateInstance 返回 REGDB_E_CLASSNOTREG错?应该怎么解决?项目催的很急,请高手不吝赐教!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

7
 
没有人会吗?我查了很多资料,这个方法应该是很经典的样子。但是就是不知道哪里的问题……
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
/**
*************************************************************
* 函 数 名: ShowPic
* 描    述: 在HDC上上显示对应路径下图片
* 输入参数: hdc:窗口设备句柄
                        filename:完整路径
                        nStartX:图片起始坐标X
                        nStartY:图片起始坐标Y
                        nChangeX:图片宽
            nChangeY:图片高
* 输出参数: 无
* 返 回 值: 成功返回TRUE,失败返回FALSE
* 创 建 人: pc
* 日    期: 2006/11/28
* 修改记录:
*     修改人      修改日期      修改描述
*************************************************************/
BOOL ShowPic(HDC hdc,const TCHAR * filename,int nStartX,int nStartY,int nChangeX,int nChangeY)
{
        IImagingFactory *pImgFactory = NULL;
        IImage *pImage = NULL;
        ImageInfo imageInfo;
       
        RECT dstRc;

        CoInitializeEx(NULL, COINIT_MULTITHREADED);

        if (SUCCEEDED(CoCreateInstance(CLSID_ImagingFactory,
                                                                   NULL,
                                                                   CLSCTX_INPROC_SERVER,
                                   IID_IImagingFactory,
                                   (void **) &pImgFactory)))
        {
                if (SUCCEEDED(pImgFactory->CreateImageFromFile(filename, &pImage)))
                {
                        pImage->GetImageInfo(&imageInfo);
                        dstRc.left = nStartX;
                        dstRc.top = nStartY;

                        dstRc.right = nStartX + nChangeX;
                        dstRc.bottom = nStartY + nChangeY;
                        pImage->Draw(hdc, &dstRc, NULL);
                        pImage->Release();
                }
                else
                {
                        pImgFactory = NULL;
                        pImage = NULL;
                        CoUninitialize();
                        return FALSE;
                }
        }
        else
        {
                pImgFactory = NULL;
                pImage = NULL;
                CoUninitialize();
                return FALSE;
        }
        pImgFactory = NULL;
        pImage = NULL;
        CoUninitialize();
        return TRUE;
}
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

9
 
你的平台上没有加入静态图像的组件,所以所引用的类没有注册。

需要重新定制你的平台,定制时选上 graphics and multimedia ...-> imaging -> still image decoders -> GIF Decode 这个组件,或者直接在配置文件中置SYSGEN_IMAGING_GIF_DECODE为1,然后重新生成平台,平台会将Imaging.lib加入到os中并注册,你的程序应该就可以在成功跑起来了。


如果平台不是你自己定制的,或者你不能更改,那么也可以将Imaging.dll通过应用程序自己注册到os中,然后就可以使用ImagingFactory了
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表