使用C ++,GSOAP和Onvif创建客户端应用程序

时间:2013-07-08 20:02:28

标签: c++ gsoap onvif

我正在使用Visual Studio和GSOAP 2.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添加到我的程序的主文件中:

#include "soapDeviceBindingProxy.h"

这给了我一个DeviceBindingProxy对象,但我不知道如何处理它。我想以已知的IP地址连接到Onvif相机并请求有关该设备的信息。

GSOAP示例并不特定于Onvif,而Onvif伪代码示例并不特定于GSOAP。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

只需打开DeviceBindingProxy对象的定义(甚至更好:在gSoap生成的源文件上运行 doxygen 并享受舒适的HTML文档)。

它应该为服务提供的每个操作包含一个单独的方法,完全按照服务定义命名。

每种方法都应该采用两个参数:request&响应(它们的类型是指向gSoap生成的结构的指针:有关详细信息,请参阅其定义/文档。)

您需要做的就是创建请求和实例的实例。响应,填充请求,将指针传递给此方法并从(已经解析的)响应中获取数据。