htmlcxx 0.85的bug,断言_ASSERTE((unsigned)(c + 1) <= 256)错误
来源:互联网 发布:制造业大数据解决方案 编辑:程序博客网 时间:2024/05/28 15:52
在htmlcxx 0.85版的html文件夹里的Node.cc文件中, 其中parseAttributes函数里:
在line 72、74、81行,isspace(* )函数,
其中isspace(*begin)中会有如下断言:_ASSERTE((unsigned)(c + 1) <= 256); //要求调用者保证传入的参数必须属于ASCII码
可以修改如下:
// while (isspace(*begin) && begin < end) ++begin; /* 处理中文时bug*/ while (((unsigned)*begin > 255 || isspace(*begin)) && begin < end) ++begin;
74,81行类似。
做完这些后,有时还是会报那个断言错误(好烦啊!)。这是因为ctype.h这个头文件里定义的函数的问题,系统默认编译的时候char是有符号的,也就是范围是-128 —— 127,因此给char类型赋值超过127的时候就会报错。因此我们设置默认char无符号就可以了,但是偏偏vs2010把这个选项去了。没关系,还有办法,在使用这个库的项目上右键——属性——配置属性——C/C++——命令行,在下面的其它选项的大块输入框中输入“/J”。
好了,我们改处理的bug都处理完了,可以使用了。
详见:http://manxh.com/
- htmlcxx 0.85的bug,断言_ASSERTE((unsigned)(c + 1) <= 256)错误
- htmlcxx解析中文时出现断言_ASSERTE((unsigned)(c + 1) <= 256)的解决方法
- _ASSERTE((unsigned)(c + 1) <= 256);
- unsigned引起的bug
- 56 Expression: (unsigned)(c + 1) <= 256
- C专家编程—使用unsigned int可能产生的Bug(1)
- 关于_ASSERTE(_CrtIsValidHeapPointer(pUserData)) 错误的结局办法
- _ASSERTE(_CrtIsValidHeapPointer(pUserData))错误详解
- _ASSERTE(_CrtIsValidHeapPointer(pUserData))错误详解
- htmlcxx
- 解决 debug模式下 的 56 Expression: (unsigned)(c + 1) <= 256
- debug : 没有在逻辑错误处加断言拖延了bug修复的时间
- delete释放内存,发生错误,显示DBGHEAP.C中的_ASSERTE(_CrtIsValidHeapPointer(pUserData))
- C诡异bug测试连载_2 (unsigned int 减法的恶梦)
- 关于signed和unsigned的隐秘bug
- vs 下的 断言错误
- c语言:c=unsigned(c)> > (sizeof(int)*8-1);
- VS调试错误_ASSERTE(_CrtIsValidHeapPointer(pUserData))
- 截断 冒泡
- 【艺术评析】陈全胜先生山水画
- Java_10_19课堂总结
- POJ 3613 图论思想转化
- Distributed Transactions and Timeouts
- htmlcxx 0.85的bug,断言_ASSERTE((unsigned)(c + 1) <= 256)错误
- Win7中无法安装oracle 10g 的问题
- FM Radio项目原创代码
- linux安装使用jprofiler6分析服务器应用状态(序列号)
- SQL Server中类型转换(将varchar值转换为数据类型为int的列时发生语法错误)
- Distributed Transactions and Timeouts
- 删除Java源代码中的注释
- C#读文件时出现中文乱码问题的解决方案
- C语言练习03:操作SQLite数据库