我正在尝试使用 gSOAP 在 C++ 中创建 Web 服务。我从 ONVIF wsdl 生成了几个标头:
wsdl2h -x -o dm.h http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl -tC:\gsoap-2.8\gsoap\typemap.dat
wsdl2h -x -o an.h http://www.onvif.org/onvif/ver20/analytics/wsdl/analytics.wsdl -tC:\gsoap-2.8\gsoap\typemap.dat
之后,我编译了生成 C++ 服务代理和对象的头文件:
soapcpp2.exe -j -S dm.h -IC:\gsoap-2.8\gsoap\import;C:\gsoap-2.8\gsoap -x -qDm
soapcpp2.exe -j -S an.h -IC:\gsoap-2.8\gsoap\import;C:\gsoap-2.8\gsoap -x -qAn
为了获得类似于 gSOAP 文档描述的应用程序:http ://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc7.2.8
在 Visual Studio 中编译,我得到以下错误:
error C3861: 'soap_in_PointerToSOAP_ENV__Fault': identifier not found
error C3861: 'soap_in_PointerToSOAP_ENV__Header': identifier not found
error C3861: 'soap_out_PointerToSOAP_ENV__Fault': identifier not found
error C3861: 'soap_out_PointerToSOAP_ENV__Header': identifier not found
我试图按照文档所说的(http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.35)关于由于 WITH_NOGLOBAL 的定义而根本没有编译序列化程序并编译了一个空的环境.h 文件,但这并没有解决问题。
我在网上搜索,但找不到任何解决方案。问题似乎与 Header 和 Fault 本身无关,而是与指针有关。正确的?我应该怎么办?