使用C++、GSOAP和Onvif制作客户端应用程序

Making a client application with C++, GSOAP, and Onvif

本文关键字:客户端 应用程序 Onvif C++ GSOAP 使用      更新时间:2023-10-16

我正在使用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.15gsoap;C:gsoap-2.8.15gsoapimport 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。如有任何帮助,我们将不胜感激。

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

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

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

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