使用 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):点这里。
也可以下载修改好的源代码:点这里。
使用 VS 2008 编译 ECW SDK 3.3相关推荐
- 编译android sdk方法
自己编译android sdk满足开发需求 $. ./build/envsetup.sh $make sdk -j4
- IMX6ULL学习笔记(11)——获取和编译官方SDK
一.简介 SDK(Software Development Kit) 是 NXP 针对其官方评估板的软件开发包,可以在 NXP 的官网下载得到.SDK 中包含了固件库和各种程序范例.这个 SDK 包提 ...
- MS Visual Studio 2008 编译错误 microsoft visual studio 9.0\vc\include\new.h(60) : error C2065: '_In_opt_
这几天为了使用一个带有256*256 PNG格式的icon图标,必须在visual studio 2008上编译.因此,在一台xp机器上装了2008,之前这台电脑还安装了sdk,WDK和vs2005. ...
- 在Windows上编译UEFI SDK 2018/OVMF的方法
2019独角兽企业重金招聘Python工程师标准>>> 本教程使用的操作系统是Windows 10 Enterprise 64位版本,编译器是Visual Studio 2017 E ...
- android sdk启动不了,windows server 2008下android sdk不能正常启动
说起这个问题来我就很郁闷,因为这个问题让我白白的损失超过4个G的流量 ,作为在校大学生,这么多的流量可是很让人肉疼的啊(每月总共就10个G的流量,还要看电影.上网啥的,疼啊....),得,闲话少说,入 ...
- 使用Cygwin编译W600 sdk
1,安装setup-x86_64.exe: 2,安装过程中,选择安装的工具时搜索make,并安装make组件: 3,等待安装完成: 4,安装 gcc-arm-none-eabi-4_9-2014q4- ...
- ffmpeg 0.8.11 VC编译的SDK已经发布
ffmpeg-0.8.11-vc-sdk,是使用ffmpeg 转换vc项目工具生成VC工程编译的 release 版本的sdk.因为编译器的问题导致sse开启的时候会导致程序崩溃,所以屏蔽了sse优化 ...
- Android编译自定义sdk,java – 使用自定义android.bluetooth.而不是在android studio中默认的sdk android.jar中存在一个...
我想使用自定义android.bluetooth而不是Android SDK附带的android.jar中的presend.我将android.bluetooth编译成单独的jar文件并导入到stud ...
- Android编译自定义sdk,向Android SDK中添加自定义的库 (Addon)
一般情况下, Android中的第三方应用程序SDK都由开发者直接打包发布,在使用SDK的时候,将所需要的文件(jar.native共享库)加入到项目中 ,这是最通用的方式.不过对于每个应用程序而言, ...
最新文章
- Python程序打包
- 小红书增长负责人:精确化营销如何玩
- PMcaff大讲堂:竞品分析项目管理课程总结分享
- 监控摄像头接入流媒体服务器的几种方式
- 唐骏:毕业5年决定你的命运
- android中注册代码怎么写,Android P HIDL demo代码编写 (原创)
- 【廖雪峰官方网站/Java教程】多线程(2)
- Flex动态创建多个曲线图+柱形图
- 类似与fiddler的抓包工具 burp suite free edition
- stm23f103 usart1串口中断可进入,而stm32f205 usart1的中断进不去解决办法
- 白猫使用OCR文字识别
- try固定搭配_regret cease try等词的固定搭配用法
- 2021年广东专精特新中小企业补助及小巨人企业补贴
- 台式计算机调亮度快捷键,处理电脑调亮度快捷键如何调整屏幕亮度呢?
- centos 7 parity 安装方法
- 什么是长尾关键词?长尾关键词优化方法和技巧
- fx5u怎么与计算机通讯,两个FX5U系列PLC如何用RS485进行通信幻灯片
- java接口参数默认值_下面关于setMaxAge(int expires)方法参数默认值的描述中,正确的是(5.0分)_学小易找答案...
- android最佳实践:网络 电池 压缩
- poi解析不固定列excel