下载并测试了expat

本文档记录了如何在Microsoft Visual C++ .NET环境下下载、编译expat库,并创建一个测试工程来验证其功能。首先通过CVS获取expat的最新源代码,然后在VC++.NET中成功编译静态库版本。接着创建了一个名为testxml的控制台应用,用于测试expat的XML解析功能。通过设置附加包含目录和库目录,确保编译链接无误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始下载了一个tar.gz版本的,解压后由于我的环境是Microsoft Visual C++ .NET 55601-652-0000007-18068,不能正常打开。 :( 看来看去要用cvs下载,没说的,下载wincvs:http://www.8848software.com/wincvs/wincvs.exe,安装运行。设置如下:cvs -d:pserver:anonymous@cvs.libexpat.org:/cvsroot/expat,model的名字也是expat,这样就可以下载expat的最新代码了,如果不行的话仔细看看设置。
下载expat后用vc.net打开,编译,很顺利。我编译了release_static版本,然后准备进行测试。新建立一个工程:testxml,选择控制台,空项目。加入testxml.cpp文件: 
#include "expat.h"
static void XMLCALL startElement(void *userData, const char *name, const char **atts)
{
int i;
int *depthPtr = (int *)userData;
for (i = 0; i < *depthPtr; i++) putchar('/t');
    *depthPtr += 1; puts(name);
}
static void XMLCALL endElement(void *userData, const char *name)
{
int *depthPtr = (int *)userData;
*depthPtr -= 1;
}
 int main(int argc, char *argv[])
{
FILE* fp;
size_t len;
char buf[256*1024];
int done; int depth = 0;
XML_Parser parser = XML_ParserCreate(NULL);
XML_SetUserData(parser, &depth);
XML_SetElementHandler(parser, startElement, endElement);
if(argc<2) fp = fopen("play.xml","rb");
else fp = fopen(argv[1],"rb");
if(!fp) return 1;
len = fread(buf, 1, 256*1024, fp);
fclose(fp);
if (XML_Parse(parser, buf, len, done) == XML_STATUS_ERROR) return 1;
XML_ParserFree(parser);
return 0;
 }
将expat路径下的lib路径copy到testxml的路径下,lib路径下只剩下expat.h,expat_external.h,libexpatMT.lib就可以了。
按如下修改配置:
属性页面: C/C++: 常规: 附加包含目录:./lib
                                       预处理器:XML_STATIC
                       连接器: 常规: 附加库目录: ./lib
这样,编译就能通过了 :)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值