Моя основная цель — создать небольшой клиент ONVIF для получения информации о камере на языке C или 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
сделал проект. Добавление threads.h
wsaapi.h
wsddapi.h
threads.c
wsaapi.c
wsddapi.c
из gsoap
Это не компилируется, но дает:
wsaapi.h(134): error C2061: syntax error : identifier 'wsa__FaultSubcodeValues'
Я думаю, что здесь я ошибаюсь, и я не совсем понимаю, что такое «плагин» в контексте gSOAP (мой опыт работы с такими внешними библиотеками крайне ограничен, и у меня нет реального формального обучения CS). Должен ли я просто делать то, что я делаю сейчас с файлами wsdd, или они должны использоваться как часть процесса soapcpp2.exe? Я действительно должен использовать wsdl2h.exe, если я просто хочу WS-Discovery?
Я не могу понять документацию и не понимаю, как я должен заставить это работать. Некоторая помощь будет очень признательна, так что я могу взломать настоящую сложную часть!