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);
}

. 我会很感激任何帮助。

4

2 回答 2

2

在 Windows 上_wcsnicmp,您可以使用。

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

于 2013-03-11T07:01:52.183 回答
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
于 2020-06-11T12:21:35.197 回答