htmlcxx工程的vs2015首次成功使用过程

                                                                       htmlcxx工程的vs2015首次成功使用过程

笔者最近在做一个工程需要用到处理html文件和数据,不想自己动手,就搜了下判断应该可以应用开源的htmlcxx,然后就去下了一个0.87的版本,下载链接:https://iweb.dl.sourceforge.net/project/htmlcxx/v0.87/htmlcxx-0.87.zip,有需要的朋友可以自行前往官方下载.

首先就想着应该直接源码自己集成到自己的动态库多方便可以省下不少事情吧,那就做一个工程吧,把这些个源码都堆进去看看吧:

第一步建立动态库工程如图:

第二步添加压缩包的源码:

第三步建立相关筛选器的把源代码目录拖入相应的筛选器去得到如图箭头指示的相关文件就放进去了:

第四步:编译看看出现如图所示错误:

第5步修改相关代码

5.1:css_syntax.c1445行中修改到下面代码同样方法替换掉css_lex.c文件中的函数(原因是微软库里添加警告说不安全函数要用安全函数替换)

css_lex.c文件还要替换isatty成_isatty,fileno->_fileno

5.2:添加预处理关闭错误如图设置:

5.3:自己建立一个unistd.h文件:放下面内容:

#ifndef _UNISTD_H

#define _UNISTD_H
#include <io.h>
#include <process.h>
#endif /* _UNISTD_H */

5.4还有如下错误

修改 

文件名找到这个文字改成图片中的值

下面这个文件就没有那么容易了要下一个工程

到官网下一个吧:windows_conv下载地址把文件复制进去后注意修改一下 <iconv.h>成"iconv.h",(CharsetConverter.cc文件和CharsetConverter.h)都需要修改

又出现问题了:

修改代码:

还要弄个 iconv.h代码和工程来编译,到了这边我已经不想再继续了,再修复错误什么就太麻烦了.

开始第二个方法吧:去掉它工程里不要的文件进行编译是否可行,那就先尝试一下吧:

工程中去掉这3个文件编译成功

这3个文件其实就是测试用的,作者自己也没有加进去我们看第二种编译模式看看吧.

第二种方法就简单了:

直接用作者的项目我们来看看:

直接用vs打开如图的文件升级一下

得到工程就是如图的文件

编译一下有一个错误修改一下该行把第二个图片中选取的字符重新打过一下:

编译结果通过得到静态库如图:

我集成到自己的工程中就出现问题了包含相应路径的方法各自不同就不说了如图是笔者的一个路径:

复制于htmlcxx工程中的测试例程文件htmlcxx.cc进行相应修改一下而已:

加个测试函数:

int testhtmlcxx()//本函数来源于htmlcxx.cc稍做裁减
{
	extern std::string Edusystem_demo_str;
	tree<HTML::Node> tr;
	bool parse_css = true;
	string css_code;
	try
	{	
		string html= Edusystem_demo_str;	
		HTML::ParserDom parser;
		parser.parse(html);
		tr = parser.getTree();
		cout << tr << endl;
	}
	catch (exception &e) {
		cerr << "Exception " << e.what() << " caught" << endl;
		exit(1);
	}
	catch (...) {
		cerr << "Unknow exception caught " << endl;
	}
	if (parse_css)
	{
		cerr << "Css parsing not supported in win32" << endl;
		return 1;
	}
	return 0;
}

出现如下错误:

这个是我自己动态库工程,把lib添加进来冲突了,试了多个方法无法解决问题,我有的lib必须要用的也是本文重点要提醒的问题:

最简单的解决方法运行库调一下重新复制lib到动态库工程:

一切都可按你想的去编写了,笔者使用的环境:vs2015有不一样的朋友可以参考一下:

笔者最早碰到的问题是动态库工程里面缺少定义一个WIN32宏如图:

由于成文时间仓促,有什么错误之处欢迎提出。

码字两个小时,对您有用不妨点个赞鼓励一下我!谢谢您看完本文!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

界忆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值