我正在使用和GSOAP2.8.15创建一个C++ Onvif客户端。
我运行了以下命令来创建源代码:
> wsdl2h -P -x -o onvif.h http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsdl
> soapcpp2 -i -C -IC:\gsoap-2.8.15\gsoap;C:\gsoap-2.8.15\gsoap\import onvif.h
然后我将这些文件放在我的MSVC解决方案中:
duration.h/.cpp
soapH.h/soapC.cpp
stdsoap2.h/.cpp
我将这个文件添加到目录中,但没有添加到解决方案中:
soapStub.h
我将其作为#define
添加到编译中:
WITH_NONAMESPACES
我将这个包含添加到我的程序的主文件中:
#include "soapDeviceBindingProxy.h"
这给了我一个DeviceBindingProxy
对象,但我不知道该如何处理它。我想连接到一个已知ip地址的Onvif摄像头,并请求有关该设备的信息。
GSOAP示例不特定于Onvif,Onvif伪代码示例也不特定于GSOAP。任何帮助都将不胜感激。
发布于 2013-07-17 13:08:50
只需打开DeviceBindingProxy
对象的定义(甚至更好:在gSoap生成的源文件上运行doxygen,并享受舒适的HTML文档)。
它应该包含服务提供的每个操作的单独方法,其名称与服务定义完全相同。
每个方法都应该包含两个参数: request & response (它们的类型是指向gSoap生成的结构的指针:有关详细信息,请参阅它们的定义/文档)。
您所需要做的就是创建request & response实例,填充请求,将指向该方法的指针传递给该方法,并从(已经解析的)响应中获取数据。
https://stackoverflow.com/questions/17535015
复制相似问题