'wcsncasecmp'未在此范围内声明

时间:2013-03-11 06:57:23

标签: c++ c json

我已经从simpleJSON中包含了文件JSONValue,它用于解析json字符串。 在编译时我收到此错误,即'wcsncasecmp'未在此范围内声明。 在这条线上。虽然搜索更多我认为wcsncasecmp是一个GNU特定的功能,我使用的是Windows,所以任何人都可以帮助我。

else if ((simplejson_wcsnlen(*data, 4) && wcsncasecmp(*data, L"true", 4) == 0) ||     (simplejson_wcsnlen(*data, 5) && wcsncasecmp(*data, L"false", 5) == 0))
    {
    bool value = wcsncasecmp(*data, L"true", 4) == 0;
    (*data) += value ? 4 : 5;
    return new JSONValue(value);
}

。 我会很乐意帮助你。

2 个答案:

答案 0 :(得分:1)

在Windows上,您可以使用_wcsnicmp

更多参考:_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

答案 1 :(得分:1)

请在您的源代码中或在Visual Studio中定义WIN32宏,请将其添加到项目/属性/ C / C ++ /预处理程序定义中。

#define WIN32

在内部,它将定义 wcsncasecmp _wcsnicmp ,就像Rohan已经提到的那样。 这是SimpleJSON的已知问题。

// Win32 incompatibilities
#if defined(WIN32) && !defined(__GNUC__)
    #define wcsncasecmp _wcsnicmp
    static inline bool isnan(double x) { return x != x; }
    static inline bool isinf(double x) { return !isnan(x) && isnan(x - x); }
#endif