"wcsncasecmp"在此范围内未声明。

3

我已经添加了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);
}

. I'll be greatful for any help.

2个回答

2

1
请在您的源代码中定义WIN32宏,或者在Visual Studio中将其添加到项目/属性/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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接