使用CxImage实现图像格式转换Word文档格式.docx

上传人:b****1 文档编号:4920380 上传时间:2023-05-04 格式:DOCX 页数:13 大小:324.63KB
下载 相关 举报
使用CxImage实现图像格式转换Word文档格式.docx_第1页
第1页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第2页
第2页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第3页
第3页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第4页
第4页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第5页
第5页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第6页
第6页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第7页
第7页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第8页
第8页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第9页
第9页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第10页
第10页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第11页
第11页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第12页
第12页 / 共13页
使用CxImage实现图像格式转换Word文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

使用CxImage实现图像格式转换Word文档格式.docx

《使用CxImage实现图像格式转换Word文档格式.docx》由会员分享,可在线阅读,更多相关《使用CxImage实现图像格式转换Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

使用CxImage实现图像格式转换Word文档格式.docx

右击打开文件位置

b.找到VS2010的启动项目devenv.exe:

右击属性兼容性特权等级,以管理员权限运行;

如果需要每个用户都以管理员权限运行,还可以更改所有用户的设置特权等级,以管理员权限运行。

c.然后在项目的打开方式中确保以VS2010为默认打开程序就好了。

在编译之前先将每个工程属性的CharacterSet由原先的UseUnicodeCharacterSet改为UseMulti-ByteCharacterSet(否则,在使用该库时,会出现类似:

errorC2664:

'

CxImage:

:

Save'

:

cannotconvertparameter1from'

constchar*'

to'

constTCHAR*'

的错误)。

首先编译jasper、jbig、jpeg、libdcr、libpsd、mng、png、tiff、zlib这9个库,然后编译cximage,cximagecrtdll,再接着编译cximagemfcdll。

在编译cximagemfcdll之前,先修改其属性,linker->

input->

AdditionalDependencies,将$(OutDir)png.lib等改为../../Debug/png.lib(../../Release/png.lib),最后编译demo、demodll;

全部编译完后即可生成相应的静态库和动态库。

编译cximagecrtdll可能会出现下面错误1:

1>

LIBCMT.lib(invarg.obj):

errorLNK2005:

__invalid_parameteralreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

LIBCMT.lib(lseek.obj):

__lseekalreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

LIBCMT.lib(dosmap.obj):

__errnoalreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

LIBCMT.lib(crt0dat.obj):

__initterm_ealreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

_exitalreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

__amsg_exitalreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

LIBCMT.lib(tidtable.obj):

__encoded_nullalreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

LIBCMT.lib(mlock.obj):

__unlockalreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

__lockalreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

LIBCMT.lib(hooks.obj):

"

void__cdeclterminate(void)"

(?

terminate@@YAXXZ)alreadydefinedinMSVCRTD.lib(MSVCR100D.dll)

LIBCMT.lib(crt0init.obj):

___xi_aalreadydefinedinMSVCRTD.lib(cinitexe.obj)

___xi_zalreadydefinedinMSVCRTD.lib(cinitexe.obj)

___xc_aalreadydefinedinMSVCRTD.lib(cinitexe.obj)

___xc_zalreadydefinedinMSVCRTD.lib(cinitexe.obj)

处理方法:

打开属性配置页(右击项目名——>

单击Properties)——>

ConfigurationProperties目录下Linker中的Input中IgnoreSpecificDefaultLibraries添加库libcmt.lib。

编译cximagemfcdll可能出现的错误2:

找不到png.lib

在项目属性中正确添加库所在文件路径:

..\..\Debug,并将需要的库添加到附加依赖项AdditionalDependencies中。

值得一提的是,我遇到的无法打开lib或者无法解析函数问题均是通过更改链接输入的附加依赖项解决的(有时候需要切换属性->

配置属性-常规->

字符集)。

编译运行demo

1.先将demo设置为启动项目(方法见后文)。

如果直接运行,会出现以下错误:

stdafx.cpp

d:

\programfiles(x86)\microsoftvisualstudio10.0\vc\atlmfc\include\afxver_.h(81):

fatalerrorC1189:

#error:

Pleaseusethe/MDswitchfor_AFXDLLbuilds

设置如下:

2.此项目是静态链接,需要的是cimage目录下的众多头文件和众多lib库,前者在属性->

配置属性->

C\C++->

附加包含目录或属性->

包含目录中添加头文件所在的目录;

后者在属性->

链接器->

输入->

附加依赖项中添加lib各个文件项目。

注意的是cpp文件是不需要的,可以将cimage目录下的众多头文件拷到项目的某个目录中。

3.编译运行时出现了两个问题,一个是lib的问题,将lib的路径同样按照上面的方式重新配置了以后(注意相对路径是针对某个项目的)

4.接着出现了无法打开exe的问题,没办法,将属性->

常规中的输出目录和目标文件名给改了,我的是改成了$(SolutionDir)\bin\和demod,也就是和链接器->

常规中的输出文件弄成一致的,开始并不一致,这个很奇怪。

错误1:

cximage.lib(ximadsp.obj):

errorLNK2019:

unresolvedexternalsymbol"

void__cdeclstd:

_Debug_message(wchar_tconst*,wchar_tconst*,unsignedint)"

_Debug_message@std@@YAXPB_W0I@Z)referencedinfunction"

public:

void__thiscallstd:

deque<

structtagPOINT,classstd:

allocator<

structtagPOINT>

>

pop_front(void)"

pop_front@?

$deque@UtagPOINT@@V?

$allocator@UtagPOINT@@@std@@@std@@QAEXXZ)

__thiscallstd:

_Lockit:

~_Lockit(void)"

?

1_Lockit@std@@QAE@XZ)referencedinfunction"

_Container_base12:

_Orphan_all(void)"

_Orphan_all@_Container_base12@std@@QAEXXZ)

_Lockit(int)"

0_Lockit@std@@QAE@H@Z)referencedinfunction"

_Xlength_error(charconst*)"

_Xlength_error@std@@YAXPBD@Z)referencedinfunction"

protected:

_Xlen(void)const"

_Xlen@?

$allocator@UtagPOINT@@@std@@@std@@IBEXXZ)

处理方法

ConfigurationProperties目录下Linker中的Input中AdditionalDependencies添加库libcpmtd.lib。

编译运行demodll

1.此项目使用的动态链接,只需要cximage目录下的众多头文件,cximagecrtd.lib和cximagecrtd.dll(生成自项目cximagecrtdll)或cximaged.lib和cximaged.dll(生成自项目cximagemfcdll),头文件与lib文件的配置方式也与上面demo的一致。

这次lib的依赖路径没有修改,原来的是一致的,当然的不一致的也需要修改。

同样出现了无法打开exe文件的问题,同上面的方式,将输出目录和目标文件名给改了,我的是改成了$(SolutionDir)\bin\和demoddll

示例

1.新建一个控制台工程toJPEG(将png、bmp以及非标准格式的jpg格式的图片转为标准的jpg格式),将CharacterSet设为UseMulti-ByteCharacterSet。

2.从CxImage文件(..\CxImage\)中复制下列文件到工程目录:

xfile.h、ximacfg.h、ximadef.h、ximage.h、xiofile.h、xmemfile.h 

3.从CxImage文件(..\Debug\)中复制下列文件到工程目录lib文件夹下:

png.lib、jpeg.lib、zlib.lib、cximage.lib

因为没有用到所有的库,所以在编译cximage.lib之前,需要在配置的头文件ximcfg.h中找到一些编译开关来关闭一些图像库。

4.添加lib

方法一:

直接在附加依赖项中添加;

方法二:

写在文件中

5.必需添加头文件ximage.h,代码如下:

参考文献

1.CxImage的编译及简单使用举例:

2.CxImage702在VS2010上的配置记录:

3.CxImage类库使用说明

设置为启动项的方法:

如果工程里有一个以上的可运行项目,将某个项目设置为启动项的方法:

右击该项目,在菜单中选择设置为启动项。

(一个启动项打开,另一个自动关闭)

CxImage工程

1.ximage.h文件

1、_MSC_VER定义编译器的版本(Microsoft的C编译器的版本);

2、#ifCXIMAGE_SUPPORT_BMP

CXIMAGE_FORMAT_BMP=1,

#endif

如果if后的语句成立,则执行if和endif中间的语句。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2