【问题标题】:gSOAP 2.8.30 compatibility with VS6 C++gSOAP 2.8.30 与 VS6 C++ 的兼容性
【发布时间】:2016-04-19 10:17:01
【问题描述】:

我尝试使用 gSOAP 2.8.30 编译我的窗口应用程序,但我发现了一个错误

wctomb_s 未声明的标识符

如果最新的 gSOAP 与 VC6++ 不兼容,我只是在徘徊,因为此错误来自 stdsoap2.cpp。在此之前,我使用 gSOAP 2.8.6 工作正常。

【问题讨论】:

  • 这与编码有关。尝试将“字符集”选项设置为“未设置”进行编译:属性/常规/字符集。
  • 感谢您的回复。但在 VC6 中没有将字符集更改为未设置的选项。

标签: c++ c windows gsoap


【解决方案1】:

VS6 C++ 不支持wctomb_s(推荐更安全的wctomb 版本)。升级到较新的 VS C++ 版本或更新 stdsoap2.cpp 函数 soap_string_in 中的代码:

#ifdef WIN32
        m = 0;
        wctomb_s(&m, buf, sizeof(buf), (wchar_t)(c & 0x7FFFFFFF));
#else
        m = wctomb(buf, (wchar_t)(c & 0x7FFFFFFF));
#endif  

与:

        m = wctomb(buf, (wchar_t)(c & 0x7FFFFFFF));

在使用wctomb_s 的两个位置。

【讨论】:

    猜你喜欢
    • 2014-09-24
    • 2018-09-16
    • 2021-08-27
    • 1970-01-01
    • 2013-06-25
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多