[wbxml]使用Perl封装的WBXML的方法
2008-04-12 15:36
726 查看
使用Perl封装的WBXML的方法
编写者 | 日期 | 关键词 |
郑昀@ultrapower | 2005-9-20 | WBXML XML Perl |
利用Perl库XML::WBXML,就可以执行XML和WBXML(Wap Binary XML)之间的自由转换了:use XML::WBXML;
$wbxml = XML::WBXML::xml_to_wbxml($xml);
$xml = XML::WBXML::wbxml_to_xml($wbxml);
下面我说一下如何编译这个包。
第一步:
到http://libwbxml.aymerick.com/download.php下载Aymerick Jehanne用C++编写的DLL库WBXML Library v0.9.0 (download)第二步:
到http://search.cpan.org/dist/XML-WBXML/lib/XML/WBXML.pm下载XML-WBXML-0.02.tar.gz,这是Perl封装libwbxml2.dll的库。第三步:
在编译XML-WBXML之前,你必须先修改XML-WBXML-0.02.tar.gz中的Makefile.pl,因为原先它没有指定要link外部的lib。否则当你make时将看到这样的错误:编译错误: |
正在创建库 blib/arch/auto/XML/WBXML/WBXML.lib 和对象 blib/arch/auto/XML/WBXML/WBXML.exp WBXML.obj : error LNK2019: 无法解析的外部符号 _wbxml_conv_xml2wbxml@16 ,该符号 在函数 _XS_XML__WBXML_xml_to_wbxml 中被引用 WBXML.obj : error LNK2019: 无法解析的外部符号 _wbxml_conv_wbxml2xml@16 ,该符号 在函数 _XS_XML__WBXML_wbxml_to_xml 中被引用 blib/arch/auto/XML/WBXML/WBXML.dll : fatal error LNK1120: 2 个无法解析的外部命令 NMAKE : fatal error U1077: “link” : 返回代码“0x460” [/b] |
所以,必须加入“MYEXTLIB => 'libwbxml2.lib'”的编译选项:
Makefile.PL: |
use 5.008003; use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( NAME => 'XML::WBXML', VERSION_FROM => 'lib/XML/WBXML.pm', # finds $VERSION PREREQ_PM => {}, # e.g., Module::Name => 1.1 ABSTRACT_FROM => 'lib/XML/WBXML.pm', # retrieve abstract from module AUTHOR => 'David Glasser ', LIBS => ['-lwbxml2'], # e.g., '-lm' DEFINE => '', # e.g., '-DH***E_SOMETHING' INC => '-I.', # e.g., '-I. -I/usr/include/other' # Un-comment this if you add C files to link with later: #add begin MYEXTLIB => 'libwbxml2.lib', # OBJECT => '$(O_FILES)', # link all the C files too ); [/b] |
第四步:
为了拿到libwbxml2.lib,你必须编译WBXML Library v0.9.0源代码,从而得到这个lib。并将源代码中的头文件如wbxml.h、wbxml_parser.h等复制到Perl/lib/XML文件夹下,因为编译时需要这些wbxml的头文件。第五步:
在perl编译出WBXML.DLL之后,要将libwbxml2.dll和libexpat.dll放在Perl/lib/XML/blib/arch/auto/XML/WBXML文件夹下。相关文章推荐
- [wbxml]使用Perl封装的WBXML的方法
- [wbxml]使用Perl封装的WBXML的方法
- 使用VS快速将类方法封装成Web服务
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)
- 微软系统封装工具ImageX使用方法及实例介绍
- FMDB封装,用OC方法存储model,不用写SQL语句。使用runtime获取对象属性
- perl 使用SUPER类来访问覆盖的方法
- Android中封装View提供接口供点击事件回调的方法及使用
- BigDecimal的介绍3(BigDecimal类方法封装实际使用)
- 将MFC Grid control封装为DLL的做法及其在DLL中的使用方法
- 自己封装的Android sqlite-helper.jar包使用方法
- 封装一个素数方法,在使用散列表时需要预置大小,需要用到这个方法
- 关于Ajax寄己封装方法 和 使用jqurey方法对比
- 一个perl线程使用方法的简单演示
- Perl入门(六) Perl方法的使用
- 将MFC Grid control封装为DLL的做法及其在DLL中的使用方法
- 编写SqlHelper使用,在将ExecuteReader方法封装进而读取数据库中的数据时会产生Additional information: 阅读器关闭时尝试调用 Read 无效问题,解决方法与解释
- 分页封装实用工具类及其使用方法
- perl中sprintf函数的使用方法
- 递归算法在javascript中使用的小技巧 (javascript的对象封装方法介绍)