C++ ';wcsncasecmp';未在此范围中声明

C++ ';wcsncasecmp';未在此范围中声明,c++,c,json,C++,C,Json,我包含了来自simpleJSON的文件JSONValue,用于解析json字符串。 编译时,我收到一个错误,即“wcsncasecmp”未在此范围内声明。 在这条线上。在搜索更多关于wcsncasecmp是GNU特定函数的信息时,我使用的是windows,所以任何人都可以帮助我 else if ((simplejson_wcsnlen(*data, 4) && wcsncasecmp(*data, L"true", 4) == 0) || (simplejson_wcsn

我包含了来自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);
}

我将非常感谢您的帮助。

在windows上,您可以使用
\wcsnicmp


更多参考:

请在源代码或Visual Studio中定义WIN32宏。请将其添加到project/Properties/C/C++/预处理器定义中

#define WIN32
在内部,它将把wcsncasecmp定义为\u 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