2014-09-05 8 views
0

내 목표는 C 또는 C++로 카메라 정보를 가져 오는 작은 ONVIF 클라이언트를 만드는 것입니다.WS-Discovery & gSOAP가 VS2013에 설정되었습니다.

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.cppstdsoap2.cppsoapH.hsoapStub.h에서 프로젝트를했다.

gsoap

에서 threads.h wsaapi.h wsddapi.h threads.c wsaapi.c wsddapi.c에 추가 그러나 이것은주고 컴파일되지 않습니다 :

wsaapi.h(134): error C2061: syntax error : identifier 'wsa__FaultSubcodeValues'

를 내가 여기에 매우 잘못된 것 같네요 그리고 난에 대한 혼란 스러워요 정확히 무엇 ' plugin '은 gSOAP의 컨텍스트에 있습니다 (이와 같은 외부 라이브러리에 대한 경험은 극히 제한적이며 CS에서는 실제 공식 교육이 없습니다). 내가 wsdd 파일로 지금하고있는 일을하기로되어 있습니까? 아니면 soapcpp2.exe 프로세스의 일부로 사용해야합니까? WS-Discovery를 원하면 실제로 wsdl2h.exe를 사용하고 있습니까?

필자는 실제로 설명서를 이해할 수 없으며 어떻게 작동하는지 이해할 수 없습니다. 일부 도움이 크게 감사하게 될 것이므로 실제 어려운 부분을 깰 수 있습니다!

답변

1

http://www.w3.org/2006/03/addressing/ws-addr.xsd 스키마의 WS-Adressing 플러그인 (wsaapi.h/.c)의 사용으로 인해 문제가 발생했다고 생각합니다.

gSOAP에는 WS-Discovery 플러그인 (wsddapi.h/.c)에서 사용할 수있는 wsdl2h 생성 파일이 포함되어 있습니다. 사용

  • [GSOAP_DIR] /import/wsdd10.h에 대한 WS-디스커버리 1.0 2005 WS를 사용하여 2009 WS-Adressing 2004/08
  • [GSOAP_DIR] /import/wsdd.h에 대한 WS-디스커버리 1.1 사용 검색 구현을 생성 할 수-발견 WS 1.0 ONVIF 사용으로 2005/08

을 -Adressing :

soapcpp2 -Cx [GSOAP_DIR]/import/wsdd10.h -I [GSOAP_DIR]/import -d output 

다음은 당신이 wsddapi.c의 wsaapi.c의 soapClient를 포함하여 프로젝트를 빌드 할 수 있어야한다. cpp so apC.cpp

제 실험의 일부를 찾을 수 있습니다 ws-discovery