使用 VS 2008 编译 ECW SDK 3.3

ECW 格式是 ERMapper 公司研发的一种利用小波变换算法的图像压缩格式。ERMapper 已经被 ERDAS 公司收购,ECW SDK 3.3 是 ERMapper 公司放出的最后一个开源的 ECW 开发包。下载地址:libecwj2-3.3

 

这个开发包中配有 VS8 的解决方案 .sln 文件。但是,在 VS 2008 下编译时还需要作出以下修改。

 

1. 修改 libecwj2-3.3/Source/C 目录下的所有 *.vcproj 文件,将其中的 /mapinfo:lines 全部删除,VS2008 版本不再支持这个参数。

2. 查看 libecwj2-3.3/Source/include/NCSJPCBuffer.h 文件,其中有一段代码为:

 /** Maximum UINT8 value */

static const UINT32 MAXUINT8;

 /** Maximum UINT16 value */

static const UINT32 MAXUINT16;

 /** Maximum UINT32 value */

static const UINT32 MAXUINT32;

 /** Minimum UINT8 value */

static const UINT32 MINUINT8;

 /** Minimum UINT16 value */

static const UINT32 MINUINT16;

 /** Minimum UINT32 value */

static const UINT32 MINUINT32;

 /** Maximum INT8 value */

static const UINT32 MAXINT8;

 /** Maximum INT16 value*/

static const UINT32 MAXINT16;

 /** Maximum INT32 value */

static const UINT32 MAXINT32;

 /** Minimum INT8 value */

static const INT32 MININT8;

 /** Minimum INT16 value */

static const INT32 MININT16;

 /** Minimum INT32 value */

static const INT32 MININT32;

这里面的 MAXUINT8 等变量与 VS2008 自带的 BaseTds.h 里面的预定义名称重复。将这些变量加一个下划线全部重新命名(当然,也可以命名为其它名字),如下,同时还要将整个解决方案中所有用到这些变量的地方也重新命名(有几十个地方,最好使用替换功能)。

 /** Maximum UINT8 value */

static const UINT32 MAXUINT8_;

 /** Maximum UINT16 value */

static const UINT32 MAXUINT16_;

 /** Maximum UINT32 value */

static const UINT32 MAXUINT32_;

 /** Minimum UINT8 value */

static const UINT32 MINUINT8_;

 /** Minimum UINT16 value */

static const UINT32 MINUINT16_;

 /** Minimum UINT32 value */

static const UINT32 MINUINT32_;

 /** Maximum INT8 value */

static const UINT32 MAXINT8_;

 /** Maximum INT16 value*/

static const UINT32 MAXINT16_;

 /** Maximum INT32 value */

static const UINT32 MAXINT32_;

 /** Minimum INT8 value */

static const INT32 MININT8_;

 /** Minimum INT16 value */

static const INT32 MININT16_;

 /** Minimum INT32 value */

static const INT32 MININT32_;

不做以上修改的话,编译的时候会报:error C2059: syntax error : '<L_TYPE_raw >' 错误。根据网上其它地方说的添加 _WIN32_WINNT 0x0500 其实也不行的。

 

可以直接下载编译好的包(包括 dll、lib 和 include):点这里

也可以下载修改好的源代码:点这里

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值