第一步、下载gsoap

从gsoap官网(http://www.genivia.com/products.html#notice)下载最新版gsoap(博主用的是gsoap_2.8.45)。gsoap有三个版本:Open Source gSOAP、Commercial gSOAP Edition、Commercial gSOAP Edition。我们下载开源版本即可。

第二步、解压gsoap并建立文件夹层次

   新建一个文件夹,命名为OnvifFramework,将下载下来的gsoap_x.x.xx.zip解压到该文件夹。在该文件夹下再新建两个文件夹,分别命名为:level1和ver10。在level1文件夹下新建一个文件夹,命名为:level2。在level2文件夹下新建三个文件夹,分别命名为:FrameworkSource、GenerateSource、ver10。在ver10文件夹下建立三个文件夹,分别命名为:device、media、schema。在device和media文件夹下新建一个文件夹,命名为wsdl。在ver10文件夹下新建一个文件夹,命名为schema。文件夹请务必按这个顺序建立。最后将OnvifFramework\gsoap-2.8\gsoap路径下的typemap.dat和OnvifFramework\gsoap-2.8\gsoap\bin\win32路径下的wsdl2h.exe、soapcpp2.exe(wsdl2h不支持https,需要重新编译gsoap,编译方法参照最下面的博客链接)拷贝到GenerateSource文件夹下。

具体文件夹层次结构如下图所示:

第三步、下载Onvif相关文件

从Onvif官网(http://www.onvif.org/Documents/Specifications.aspx)的ONVIF WSDL and XML Schemas Specifications页面中下载wsdl(右键-将链接另存为即可),并将下载下来的wsdl放在GenerateSource文件夹内。拷贝devicemgmt.wsdl到D:\ONVIF\OnvifFramework\level1\level2\ver10\device\wsdl路径下,拷贝media.wsdl到OnvifFramework\level1\level2\ver10\media\wsdl路径下,拷贝onvif.xsd到OnvifFramework\level1\level2\ver10\schema路径下,拷贝onvif.xsd到OnvifFramework\ver10\schema路径下。

第四步、生成onvif.h

   生成方式分为在线生成和本地生成两种,鉴于在线生成的不稳定性,博主采用本地生成方式。打开控制台,切换到GenerateSource路径下,在控制台中输入wsdl2h -o onvif.h -t  ./typemap.dat  accesscontrol.wsdl accessrules.wsdl actionengine.wsdl advancedsecurity.wsdl analytics.wsdl analyticsdevice.wsdl

credential.wsdl deviceio.wsdl devicemgmt.wsdl display.wsdl doorcontrol.wsdl event.wsdl imaging.wsdl media.wsdl ptz.wsdl receiver.wsdl recording.wsdl remotediscovery.wsdl replay.wsdl schedule.wsdl search.wsdl

(各个wsdl间用一个空格隔开)

第五步、通过onvif.h文件生成源代码框架

    如果需要鉴权,修改onvif.h头文件,加入#import "wsse.h"。将 OnvifFramework\gsoap-2.8\gsoap\import路径下的wsa5.h中的SOAP_ENV__Fault结构体注释掉或改为其他名字,如SOAP_ENV__Fault_alex。修改完后在控制台中输入soapcpp2 -j  onvif.h -I  ../../../gsoap-2.8/gsoap/import:../../../gsoap-2.8/gsoap,看到Compilation successful即为成功。

第六步、整理源代码

   将生成的.h和.cpp文件以及wsdd.nsmap文件拷贝到FrameworkSource中,并拷贝OnvifFramework\gsoap-2.8\gsoap路径下的stdsoap2.h和stdsoap2.cpp到该文件夹。

总结

   通过以上六个步骤即可完成ONVIF开发框架搭建,以后开发Onvif应用时,直接拷贝FrameworkSource文件夹中的文件即可(开发Onvif客户端程序,使用XXXXProxy.h和XXXXProxy.cpp,开发Onvif服务器端程序,使用XXXXService.h和XXXXService.cpp)。Onvif框架文件已上传,请到此处(http://download.csdn.net/download/u011110151/9898860)下载。

这篇博客(http://blog.csdn.net/saloon_yuan/article/details/24901597)及这篇博客(http://blog.csdn.net/benkaoya/article/details/72466827)给予博主很大帮助,特此感谢。

ONVIF学习-ONVIF开发框架搭建(C++)的更多相关文章

  1. Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍

    Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍 spring集成 mybatis Spring4.x零配置框架搭建 两年前一直在做后 ...

  2. C# 快速开发框架搭建—开发工具介绍

    C# 快速开发框架搭建—开发工具介绍 一.VS2013,SQL SERVER R22008 以上两种工具如有不会者自行百度学习下. 二.动软代码生成器 对于经典的三层架构框架来说,使用动软代码生成器会 ...

  3. WPF管理系统开发框架搭建指南,2020从入门到放弃

    WPF技术是一个很不错的技术,但一直没有上手过正式的项目,趁在做这个医疗项目时,遂搭建一个WPF开发框架,目的是为了统一WPF开发并提高开发效率:我对WPF技术算是零基础,现学现卖,用这些不成体系的文 ...

  4. Android学习——windows下搭建Cygwin环境

    在上一篇博文<Android学习——windows下搭建NDK_r9环境>中,我们详细的讲解了在windows下进行Android NDK开发环境的配置,我们也讲到了在NDk r7以后,我 ...

  5. Android学习——windows下搭建NDK_r9环境

    1. NDK(Native Development Kit) 1.1 NDK简介 Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android APP功能开发的工具,通过这个 ...

  6. AspectJ基础学习之二搭建环境(转载)

    AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...

  7. angularJS学习笔记之——搭建学习环境

    学习AngularJS已经好几天了,从今天开始学习AngularJS环境搭建. 无论是Mac.Linux或Windows环境中,您均可遵循本教程学习编程. 第一步:安装Git Git是什么呢? Git ...

  8. Android开发学习总结(一)——搭建最新版本的Android开发环境

    Android开发学习总结(一)——搭建最新版本的Android开发环境(转) 最近由于工作中要负责开发一款Android的App,之前都是做JavaWeb的开发,Android开发虽然有所了解,但是 ...

  9. 【转】Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。

    @2019-02-28 [小记] Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印.

随机推荐

  1. 自定义VIew方法

    onFinishInflate() 回调方法,当应用从XML加载该组件并用它构建界面之后调用的方法 onMeasure() 检测View组件及其子组件的大小 onLayout() 当该组件需要分配其子 ...

  2. 一些VS2013的使用技巧(转载)

    1. Peek View 可以在不新建TAB的情况下快速查看.编辑一个函数的代码. 用法:在光标移至某个函数下,按下alt+F12. 然后在Peek窗口里可以继续按alt+F12.然后按ctrl+al ...

  3. Zabbix监控Windows主机

    一,下载zabbix-agent 下载地址:http://www.zabbix.com/downloads/3.0.0/zabbix_agents_3.0.0.win.zip 已经下载好的文件 zab ...

  4. 苹果MAC安装Windows系统

    一,选择实用工具 二,选择分区助理 三,创建安装U盘或者安装 如没有安装U盘需要现创建一个,安装镜像需要事先准备好,制作好了安装U盘就选择第三项安装 四,为windows分区(建议分30G) 系统会格 ...

  5. Microsoft Excel 标题栏或首行锁定

    Microsoft Excel 标题栏或首行锁定 在进行Excel编辑的时候,希望在浏览的时候,第一行或者第一列能够始终显示. 需要做的是:在Excel中选择 "视图"->& ...

  6. mysqldump备份成压缩包

    可以直接应用mysqldump直接将mysql数据库中的表或者整个数据库备份成压缩格式的包 废话不多说了直接上代码吧 mysqldump -h localhost -uroot -pHb118114  ...

  7. trust an HTTPS connection

    https://zh.wikipedia.org/wiki/传输安全协议 SSL协议客户端要收发几个握手信号: 发送一个“ClientHello”消息,内容包括:支持的协议版本,比如TLS1.0版,一 ...

  8. idea破解方法

    1.http://idea.lanyus.com/ 下载破解文件 2.将下载的JetbrainsIdesCrack-3.4-release-enc.jar破解文件放在idea安装目录下的bin中: 3 ...

  9. 前端开发 - JQuery - 上

    一.js的缺点 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  10. d3.js 之SVG:矢量化图形绘制

    SVG Scalable Vector Graphics 是一个成熟的W3C标准,被设计用来在web和移动平台 上展示可交互的图形.和HTML类似,SVG也支持CSS和JavaScript.尽管可以使 ...