windows环境下,怎样调用libxml2(vs2003)

fxy0921 2008-07-15 05:44:10
我的步骤是:
1\下载libxml2-2.6.32+.win32.zip
2\下载iconv-1.9.2.win32
3\新建一个工程:
#include "stdafx.h"
#include <stdio.h>
#include <libxml\parser.h>
#include <iconv.h>

void _tmain(int argc, _TCHAR* argv[])
{
xmlDocPtr doc;
xmlNodePtr cur;
doc = xmlParseFile("F:\\work\\xme_demo\\xme_demo\\EKA1.xml");
if (doc == NULL )
{
fprintf(stderr,"Document not parsed successfully. \n");
return;
}
cur = xmlDocGetRootElement(doc);
if (cur == NULL)
{
fprintf(stderr,"empty document\n");
xmlFreeDoc(doc);
return;
}
if (xmlStrcmp(cur->name, (const xmlChar *) "story"))
{
fprintf(stderr,"document of the wrong type, root node != story");
xmlFreeDoc(doc);
return;
}
return ;

}
4\将头文件路径添加到工程中(属性-配置-c/c++-常规).
5\将lib添加到工程中(属性-配置-链接器-输入)
编译正确,执行出现弹出"无法找到组件"窗口,提示"没有找到LIBXML2.dll,因此这个应用程序未能启动.重新安装……";
想请教各位高人,这是哪出了问题?是不是下载的libxml2-2.6.32+.win32.zip存在问题?

...全文
2182 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangwindows 2010-12-10
  • 打赏
  • 举报
回复
(1)lib是编译时需要的,dll是运行时需要的。
如果要完成源代码的编译,有lib就够了。
如果也使动态连接的程序运行起来,有dll就够了。
在开发和调试阶段,当然最好都有。
(2)一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有lib文件,那么这个lib文件是静态编译出来的,索引和实现都在其中。静态编译的lib文件有好处:给用户安装时就不需要再挂动态库了。但也有缺点,就是导致应用程序比较大,而且失去了动态库的灵活性,在版本升级时,同时要发布新的应用程序才行。
(3)在动态库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是DLL文件,引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行是再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。从上面的说明可以看出,DLL和.LIB文件必须随应用程序一起发行,否则应用程序将会产生错误。
fxy0921 2008-07-18
  • 打赏
  • 举报
回复
还是没有搞懂,加载了lib,exe为什么还需要dll?
  • 打赏
  • 举报
回复
因为你的exe需要加载dll,所以得知道dll在那里
  • 打赏
  • 举报
回复
你的dll放的位置不对,放工程目录或者system32目录。
fxy0921 2008-07-16
  • 打赏
  • 举报
回复
要在linux,windows(cbc,vs2003)都实现xml的读与解析.不想用msxml和c++builder的组件来实现.


libxml2方面大侠伸下手呀!


大清早,自己顶一下!!!!!!
fxy0921 2008-07-16
  • 打赏
  • 举报
回复
我已经将libxml2.lib放到了工程目录下,为什么还要将dll放置工程目录?

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧