有哪位高手能帮忙把这个json库改成CB2010下可以用的吗

有谁能帮忙把这个json库改成CB2010下可以用的吗?
http://www.oschina.net/p/jsonvalue

------解决方案--------------------
jsonvalue(http://www.oschina.net/p/jsonvalue )在CB下的修改
只要改json.cpp,json.h不需要改。我是在XE4下修改编译通过,没作运行时测试。

一、XE及以上版本,因版权问题,不自带atl文件,需要复制以前版本的ATL文件。
方法是COPY之前本的atl文件夹到 include文件夹下。同时copy bcbatl.lib 到lib\win32\release下。我是重新装了B6后,COPY了B6的ATL文件。
二、头文件部分改下:

#include "Json.h"
#include <float.h>
#include <dispex.h>

#ifdef __BORLANDC__   //使用CB编译

#include <atl/atlbase.h>  //XE以上版本COPY先前版本的ATL至include文件夹下
#include <limits.h>
#define _I8_MIN   SCHAR_MIN
#define _I8_MAX   SCHAR_MAX
#define _I16_MIN  SHRT_MIN
#define _I16_MAX  SHRT_MAX
#define _I32_MIN  INT_MIN
#define _I32_MAX  INT_MAX
#define _UI8_MIN     0
#define _UI8_MAX     UCHAR_MAX
#define _UI16_MIN    0
#define _UI16_MAX    USHRT_MAX
#define _UI32_MIN    0
#define _UI32_MAX    UINT_MAX
#define _wcstoi64 wcstoll
#define _wcstoui64 wcstoull

#else  //用VS编译

#include "StdAfx.h"
#include <atlbase.h>
#include <atlcomcli.h> // CComDispatchDriver, CComPtr
#pragma warning(disable:4389)

#endif

三、 L"" 改为wstring() 多处,用CTRL+R替换即可,问号表达式的两个值其类型必须一样,L""为const w_char * ,与wstring 是不同的类型,会提示错误。 好象XE以前版本没那么严格,记得不清了。

四、_variant_t 的赋值。CB 少了对一些类型的直接赋值支持,对_variant_t直接写值与变量类型即可。
更改bool JSONVALUE::ToVariant函数:

bool JSONVALUE::ToVariant(_variant_t& v, const DWORD nFlag)
{
UNREFERENCED_PARAMETER(nFlag);

bool bOk = true;
switch (vt) {
case VT_NULL: v = _variant_t(); break;
case VT_I1: v.vt = VT_I1 ; v.cVal = (char)val.numVal.llVal; break;
case VT_I2: v = (short)val.numVal.llVal; break;
case VT_I4: v = (long)val.numVal.llVal; break;
case VT_I8: v.vt = VT_I8; v.llVal = val.numVal.llVal; break;