Cximage常见错误和解决办法集锦


1. VC6中使用CxImage这个库. 

编译了他的源代码,得到几个.lib 

我在VC6中引入这几个lib.然后编译,没报错! 

create一个cximage的时候,编译就报错。

 

下面是错误信息: 
Creating library Debug/Test.lib and object Debug/Test.exp 
cximage.lib(ximaraw.obj) : error LNK2001: unresolved external symbol _dcr_cleanup_dcraw 
cximage.lib(ximaraw.obj) : error LNK2001: unresolved external symbol _htons@4 
cximage.lib(ximaraw.obj) : error LNK2001: unresolved external symbol _dcr_flip_index 
cximage.lib(ximaraw.obj) : error LNK2001: unresolved external symbol _dcr_gamma_lut 
cximage.lib(ximaraw.obj) : error LNK2001: unresolved external symbol _dcr_stretch 
cximage.lib(ximaraw.obj) : error LNK2001: unresolved external symbol _dcr_convert_to_rgb 

原因:

没有加入libdcr.lib,加进去编译通过了,但是出现了arx程序AcRxDynamicLinker failed to load无法加载*.arx的错误,

用vc自带的Dependency工具查下缺少哪个dll,然后再加入,应该就ok了,终于搞定了。

2.经验之谈:


(1).编译cximage库,我编译的是最新的cximage600_full库。在vc6.0里,打开CxImgLib.dsw文件,注意:我们是要在win32的程序里用cximage的库。所以,编译选项一定要选为win32 debug 或者win 32 released选择之后,就build就可以了,你也可以单独编译其中一个库,可以进入到jpeg文件夹里单独编译Jpeg.lib这个库。

(2).编译好库,我们新建一个win32的工程,工程设置的内容网上已经很多了。我就转帖一下。
|- C/C++
  |- Code Generation
    |- Use run-time library : Multithreaded DLL (must be the same for 
     all the linked libraries)  //应该只要是多线程DLL即可,DEBUG的也行
    |- Struct member alignment : must be the same for all the linked libraries  一般是8字节对                                                     齐,在cximage库里,编译选项是默认的。这里不用管它。
  |- Precompiled headers : not using precompiled headers
  |- Preprocessor
      |- Additional Include Directories:  ..\cximage(该处填CxImage里的.h和.cpp文件拷贝并导入工程后所在的文件夹,填写后在工程中include时编译器会查找该文件夹,故include的文件无需路径)
|- Link
    |- General
        |- Object/library modules:png.lib jpeg.lib zlib.lib tiff.lib jasper.lib cximage.lib cximagecrtd.lib jbig.lib jasper.lib mng.lib libdcr.lib 这里我把编译出来的所有库都放进来了,当然不是完全需要,只是我懒得去找需要的最小集,(如果你编译一堆linker错误,什么symbols。。的,就是因为库没有放全。)

(3).我们把文件: xfile.h、ximacfg.h、ximadef.h、ximage.cpp、ximage.h、xiofile.h、 xmemfile.cpp、xmemfile.h复制到工程目录里面,有的网友编译以前的版本,可能有 CxImage.h,在最新的库里是没有这个文件的。所以不需要,我们的工程需要包含头文件:#include "ximage.h"就好了。

(4).需要修改文件ximage.h文件和cx.cpp文件里的save和load函数的filename数据类型,以前是wchar,改为char就可以了。
不然编译错误如下:
CXLearn.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CxImage::Save(wchar_t const *,unsigned long)" (?Save@CxImage@@QAE_NPB_WK@Z) referenced in function _wmain


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM