2013-07-08 52 views
3

我正在使用Visual Studio和GSOAP 2.8.15创建C++ Onvif客户端。使用C++,GSOAP和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。任何帮助,将不胜感激。

+1

问这个问题已经很长时间了,但有人可能会觉得这有帮助:https://github.com/tonyhu/gsoap-onvif/blob/master/main.cpp。 这实际上只是描述@Daddy32下面解释的内容的代码,应该帮助人们入门。 – Zaxter

回答

1

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

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

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

您只需创建请求&响应的实例,填充请求,将指针传递给此方法并从(已解析的)响应中收集数据。

相关问题