Web services WS-Discovery&;gSOAP于2013年成立 我的主要目标是创建一个小的OnVIF客户端,用于获取C或C++中的相机信息。

Web services WS-Discovery&;gSOAP于2013年成立 我的主要目标是创建一个小的OnVIF客户端,用于获取C或C++中的相机信息。,web-services,gsoap,ws-discovery,Web Services,Gsoap,Ws Discovery,gSOAP似乎是一个很好的候选者,我想实现的第一件事是制作一个小型控制台应用程序,它将使用WS-Discovery列出我网络上的一组摄像头的地址,这是我以前使用一个小型.NET应用程序所做的 问题是我在第一个跨栏时绊倒了,对于我应该做什么我有点困惑。我首先做了以下工作: wsdl2h.exe -o WSDiscovery.h WS-Discovery.wsdl http://www.w3.org/2006/03/addressing/ws-addr.xsd soapcpp2.exe -i -C

gSOAP似乎是一个很好的候选者,我想实现的第一件事是制作一个小型控制台应用程序,它将使用WS-Discovery列出我网络上的一组摄像头的地址,这是我以前使用一个小型.NET应用程序所做的

问题是我在第一个跨栏时绊倒了,对于我应该做什么我有点困惑。我首先做了以下工作:

wsdl2h.exe -o WSDiscovery.h WS-Discovery.wsdl http://www.w3.org/2006/03/addressing/ws-addr.xsd

soapcpp2.exe -i -C -Iimport WSDiscovery.h -d output
,, 然后,我根据生成的
soapC.cpp
stdsoap2.cpp
soapH.h
soapStub.h
。从gsoap添加
threads.h
wsaapi.h
wsddapi.h
threads.c
wsaapi.c
wsddapi.c

但是,这并不适用于以下情况:

wsaapi.h(134):错误C2061:语法错误:标识符“wsa\uu FaultSubcodeValues”

我认为我在这里犯了很大的错误,我对gSOAP环境中的“插件”到底是什么感到困惑(我对像这样的外部库的经验非常有限,而且我在CS方面没有真正的正式培训)。我是应该像现在一样处理wsdd文件,还是应该将它们用作soapcpp2.exe进程的一部分?如果我只是想要WS-Discovery,我真的应该使用wsdl2h.exe吗


我真的搞不懂这些文档,也不明白我该如何让它工作。一些帮助将非常感谢,这样我就可以破解与实际困难的部分

我猜问题来自于对模式使用WS-Addressing插件(wsaapi.h/.c)

gSOAP包含wsdl2h生成的文件,WS-discovery插件可以使用该文件(wsddapi.h/.c)

  • [GSOAP_DIR]/import/wsdd10.h,用于使用WS-Addressing 2004/08的WS-Discovery 1.0 2005
  • [GSOAP_DIR]/import/wsdd.h用于使用WS-Addressing 2005/08的WS-Discovery 1.1 2009
由于ONVIF使用WS-Discovery 1.0,您可以使用以下方法生成发现实现:

soapcpp2 -Cx [GSOAP_DIR]/import/wsdd10.h -I [GSOAP_DIR]/import -d output
接下来,您应该能够构建包含wsddapi.c wsaapi.c soapClient.cpp soapC.cpp的项目

你可以在github上找到我的一些实验