C++ html解析库htmlcxx常见使用报错解决方法 - Go语言中文社区

C++ html解析库htmlcxx常见使用报错解决方法


htmlcxx是C++中解析html格式数据的第三方库,不过这个库存在以下Bug,下面将给出我在使用过程中遇到的Bug以及解决方法,请先阅读我的博客 C++爬虫工具之html解析库htmlcxx(附VS2019环境搭建详细过程),介绍了htmlcxx项目本地编译过程,以及vs中环境搭建过程。

报错1、编译htmlcxx项目时报错util.cc文件的17行中“常量中有换行符”

解决方法:将util.cc的第17行的""常量删除,然后再次键""

原因是里面含有一个不可见的换行符,在0.86的版本中。
在这里插入图片描述

报错2、开发项目中使用报错LNK2038 检测到“RuntimeLibrary”的不匹配项: 值“MTd_StaticDebug”不匹配值“MDd_DynamicDebug”(HttpUtils.obj 中) 京东方在线爬虫 E:ProjectsVistual Studio Projects京东方在线爬虫htmlcxx.lib(Node.obj) 1

在这里插入图片描述
这是因为在本地编译htmlcxx项目默认使用的运行库的方式为多线程调试 (/MTd),而在vs中项目默认使用的运行库方式多线程调试 DLL (/MDd)

解决方法:将htmlcxx项目编译前修改为多线程调试 DLL (/MDd),再进行编译,或者修改使用htmlcxx的运行库方式为多线程调试 (/MTd)color{red}将两者统一即可

项目中运行库方式修改方法:
在这里插入图片描述
在这里插入图片描述
修改 项目属性->配置属性->C/C+±>代码生成->运行库
在这里插入图片描述
在这里插入图片描述

报错3:解析html时报错会报错Expression:c>=-1&&c<=255

在这里插入图片描述
原因是html中出现了中文,代码中有一个方法会判断字符ASCII码的值,此时中文操作了范围,因此报错。

解决方法: 在解析html前添加代码setlocale(LC_ALL, ".OCP");

在这里插入图片描述
以上3个报错的解决方法都被我碰到了,说多了都是泪。。。

希望可以帮助到各位道友,也许被这几个Bug折腾了好几个小时,看到这篇博客茅塞顿开,不点个赞就过粪了哈~在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_41855420/article/details/104563823
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢