vc使用jsoncpp头文件冲突问题
编译时出现
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2365: “operator new”: 重定义;以前的定义是“函数”
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2078: 初始值设定项太多
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xdebug(32) : error C2440: “初始化”: 无法从“int”转换为“void *”
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(343) : error C2227: “->_Name”的左边必须指向类/结构/联合/泛型类型
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(343) : error C2228: “.c_str”的左边必须有类/结构/联合
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error C2065: “_Cat”: 未声明的标识符
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error C2065: “_Other”: 未声明的标识符
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : error C2228: “._Ptr”的左边必须有类/结构/联合
1>d:\program files (x86)\microsoft visual studio 9.0\vc\include\xlocale(344) : fatal error C1003: 错误计数超过 100;正在停止编译
jsoncpp的代码拿着好久了,一直不能加入到自己库,总出现这些错误,一直没搞明白怎么回事
今天无意中发现是debug版本中是new在作怪
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
搞的好纠结的,印象中试过几次 都没找着问题,哎..
解决方式如下:修改json.h
#ifndef JSON_JSON_H_INCLUDED
# define JSON_JSON_H_INCLUDED #ifdef new
#define REDEFINE_NEW
#undef new
#endif // new //# include "autolink.h"
# include "value.h"
# include "reader.h"
# include "writer.h"
# include "features.h" #ifdef REDEFINE_NEW
#define new DEBUG_NEW
#endif // REDEFINE_NEW #endif // JSON_JSON_H_INCLUDED
先取消new的DEBUG_NEW宏定义,尾巴上再重新定义宏,完美解决呀..
得养成好习惯,头文件中不能写的代码不能写... 我是有个模板类的头文件中使用了DEBUG_NEW宏,没法
vc使用jsoncpp头文件冲突问题的更多相关文章
- 1.svn 彻底clear时,注意代码备份 2.借助vc助手加头文件
1.svn 彻底clear时,注意代码备份 2.不小心彻底clear可以在回收站找到 3.借助vc助手加头文件
- VC++中的头文件包含问题
在一些大的工程中,可能会包含几十个基础类,免不了之间会互相引用(不满足继承关系,而是组合关系).也就是需要互相声明.好了,这时候会带来一些混乱.如果处理得不好,会搞得一团糟,根据我的经验,简单谈谈自已 ...
- VC中添加头文件以及库
原文:http://blog.csdn.net/lwb102063/article/details/52068389 附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tool ...
- [转]VC++的类头文件
本文转自:http://blog.csdn.net/forevertali/article/details/4370602 animal.h //在头文件中包含类的定义及类成员函数的声明 clas ...
- vc++中 .H 头文件引用的顺序与符号关系
在使用 #include "math.h" 和 #include <math.h>时,引号 与尖括号的区别如下 此时math.h_1 在工程文件中 math.h_2 ...
- C++ 包含头文件 和 宏的使用 和 条件编译
1 #define命令剖析 1.1 #define的概念 #define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本. ...
- 预编译头文件pch
1. 预编译头文件 作用:提高编译效率.预编译头文件(扩展名为.PCH),是为了提高编译效率而使用的一种方法,把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.避免每次编译 ...
- C++中头文件与源文件的作用详解
一.C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件―― .cpp 文件和 .h 文件.其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码:而 .h 文件则被称作 ...
- 浅谈VC++中预编译的头文件放那里的问题分析
用C++写程序,肯定要用预编译头文件,就是那个stdafx.h.不过我一直以为只要在.cpp文件中包含stdafx.h 就使用了预编译头文件,其实不对.在VC++中,预编译头文件是指放到stdafx. ...
随机推荐
- Python中创建守护进程
python 创建守护进程 python 的os.setdid()提供了类似linux c api的 setsid 也可以通过unix双fork创建守护进程. 几个相关的函数 os.umask(0) ...
- 25. k个一组翻转链表
题目描述 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度.如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序. 示例 : 给定 ...
- [转]【mysql监控】查看mysql库大小,表大小,索引大小
本文转自:http://blog.sina.com.cn/s/blog_4c197d420101fbl9.html 查看所有库的大小 mysql> use information_schema; ...
- MVC应用程序实现上传文件(续)
前几天,有练习了<MVC应用程序实现上传文件>http://www.cnblogs.com/insus/p/3590907.html 那只是把文档上传至MVC应用程序下的某一目录之中. 其 ...
- MVC应用jQuery动态产生数据
在前一篇<MVC应用程序JsonResult()的练习>http://www.cnblogs.com/insus/p/3402042.html中.Insus.NET在练习中学会了在视图中, ...
- C#多线程和线程池[转]
1.概念 1.0 线程的和进程的关系以及优缺点 windows系统是一个多线程的操作系统.一个程序至少有一个进程,一个进程至少有一个线程.进程是线程的容器,一个C#客户端程序开始于一个单独的线程,C ...
- spring-bean实例化三种方式
在spring中,bean的示例化有三种方式. 1.使用类的无参构造函数创建 2.使用静态工厂方式创建 3.使用实例化工厂方式创建. 具体代码如下 静态工厂方式: Bean2.java package ...
- js 日文全半角转换
客户的需求是,输入半角字符或日语假名,筛选出来的结果显示包含该字符的半角形式和全角形式的所有结果,输入全角也是同样的结果.这里就需要将输入的字符全部转为半角和全角,再去匹配结果. 在网上搜了一圈之后, ...
- Code Signal_练习题_Knapsack Light
You found two items in a treasure chest! The first item weighs weight1 and is worth value1, and the ...
- python学习之老男孩python全栈第九期_day007作业
一.关系运算 有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合pythons={'alex','egon','yuanhao','wu ...