VS2010配置jsoncpp解决编译出错问题

本人在最近的项目中使用到了jsoncpp来读取配置文件。经过多次实践终于vs2010中配置成功并能成功使用。下面介绍相关步骤。

获取jsoncpp

链接:获取jsoncpp

编译

解压下载的压缩文件。在makefiles文件夹下面有两个工程文件夹:vs71,msvc2010。推荐使用后者进行编译。

进入msvc2010文件夹,打开解决方案并编译。可以看到生成lib_json.lib文件。这就是我们要使用的库文件。这里有一点需要注意:

项目属性-->配置属性-->C/C++-->代码生成-->运行库,记住这里的值。

配置

这里我们要新建个工程。然后将工程属性按上面的值进行配置。配置完成后,将解压后的文件里面include\json这个文件夹拷贝到工程目录下,同时将前面生成的lib_json.lib拷贝到工程目录下。然后将include\json这个文件夹里面的头文件添加到工程。同时 #pragma  comment(lib,"lib_json.lib") 引入库。最后记得在项目属性-->配置属性-->

链接器-->输入-->附加依赖项中添加该lib。此时已经配置完成。

注意:该配置适用于vs2010,在vs2012中配置失败。

EG

一下demo为读取文件内容,文件名为1.txt.内容为:
{
"list":
[
{"name":"1"},
{"name":"2"},
{"name":"3"},
]
}

#include 
#include 
#include 
#include "json/json.h"
#pragma  comment(lib,"lib_json.lib")



struct WHITE_LIST_ITEM
{
	TCHAR chExeName[MAX_PATH];  
};
std::vector m_vec;

BOOL GetFileContent()
{
	Json::Value root;
	Json::Reader r;
	std::ifstream f;
	f.open(L"1.txt");
	r.parse(f, root);
	Json::Value arr = root["list"];
	WHITE_LIST_ITEM item= {};
	for(int i=0; i	
	std::vector::iterator it = m_vec.begin();
	for (; it != m_vec.end(); ++it) 
	{
		wprintf(it->chExeName);
	}
	return 0;
}

 
   

你可能感兴趣的:(配置杂记)