1:gsoap官网(http://gsoap2.sourceforge.net/)下载最新版gsoap(本次版本为gsoap_2.8.17)并解压。

2:新建一个文件夹(OnvifFramework)

将解压的gsoap_2.8.17文件拷贝至OnvifFramework目录下

将gsoap_2.8.17\gsoap-2.8\gsoap 路径下的typemap.dat以及gsoap_2.8.17\gsoap-2.8\gsoap\bin\win32 路径下的wsdl2h.exe  soapcpp2.exe也拷贝至该目录下。

3: Onvif官网(http://www.onvif.org/Documents/Specifications.aspx)页面里ONVIF WSDL and XML Schemas Specifications找到各wsdl(18个左右)并下载下来

(右键另存为即可),放入GenerateSource文件夹中。

4:生成onvif.h
           生成方式有在线生成和本地生成两种方式。由于网络的原因,在线生成很容易中断。故临时改用本地生成方式,在实际运行时发现,本地生成过程中也需要从网络上下载

相关的依赖文件,并且对文件路径有如下要求:

OnvifFramework

----level1

----level2

----GenerateSource

----typemap.dat

----wsdl2h.exe

----soapcpp2.exe

----remotediscovery.wsdl

----devicemgmt.wsdl

----analytics.wsdl

----analyticsdevice.wsdl

----media.wsdl

----deviceio.wsdl

----display.wsdl

----event.wsdl

----imaging.wsdl

----recording.wsdl

----replay.wsdl

----search.wsdl

----receiver.wsdl

----ptz.wsdl

----ver10

----device

----wsdl

----devicemgmt.wsdl

----media

----wsdl

----media.wsdl

----schema

----onvif.xsd

----ver10

----schema

----onvif.xsd

管理员权限打开CMD,切换至GenerateSource目录下,将如下指令贴到CMD窗口中回车运行即可生成onvif.h文件:
          wsdl2h -o onvif.h  -c  -s -t  ./typemap.dat 
remotediscovery.wsdl  devicemgmt.wsdl analytics.wsdl
 analyticsdevice.wsdl  media.wsdl  deviceio.wsdl  display.wsdl
 event.wsdl imaging.wsdl  recording.wsdl  replay.wsdl search.wsdl
 receiver.wsdl  ptz.wsdl

5:通过onvif.h生成源代码框架

将如下指令贴到CMD窗口中回车运行即可:

soapcpp2 -2  -c  onvif.h  -x -I  gsoap下的import文件夹路径 -I gsoap文件夹路径

onvif 框架代码生成的更多相关文章

  1. 使用gSOAP工具生成onvif框架代码

    <工具产生背景>          由于SOAP是一种基于xml的文件,手动编写SOAP文件太机械耗时,在这种背景下产生了gSAOP 这个工具,用于生成各种类型的代码,目前支持C/C++, ...

  2. 自定义Visual Studio.net Extensions 开发符合ABP vnext框架代码生成插件[附源码]

    介绍 我很早之前一直在做mvc5 scaffolder的开发功能做的已经非常完善,使用代码对mvc5的项目开发效率确实能成倍的提高,就算是刚进团队的新成员也能很快上手,如果你感兴趣 可以参考 http ...

  3. 数据库逆向框架代码生成工具:MyBatis Generator的使用

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...

  4. ORM框架-VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.5

    摘要:VB/C#.Net实体代码生成工具(EntitysCodeGenerate)[ECG]是一款专门为.Net数据库程序开发量身定做的(ORM框架)代码生成工具,所生成的程序代码基于OO.ADO.N ...

  5. 利用代码生成工具Database2Sharp生成ABP VNext框架项目代码

    我们在做某件事情的时候,一般需要详细了解它的特点,以及内在的逻辑关系,一旦我们详细了解了整个事物后,就可以通过一些辅助手段来提高我们的做事情的效率了.本篇随笔介绍ABP VNext框架各分层项目的规则 ...

  6. 代码生成工具Database2Sharp中增加视图的代码生成以及主从表界面生成功能

    在代码生成工具的各种功能规划中,我们一向以客户的需求作为驱动,因此也会根据需要增加一些特殊的功能或者处理.在实际的开发中,虽然我们一般以具体的表进行具体业务开发,但是有些客户提出有时候视图开发也是很常 ...

  7. 转:ORM框架

    转自 程序员成长之路:http://blog.csdn.net/zxc22436/article/details/6875220 对象关系映射(ORM)提供了概念性的.易于理解的模型化数据的方法.OR ...

  8. ORM 框架简介

    对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应 ...

  9. ONVIF学习-ONVIF开发框架搭建(C++)

    第一步.下载gsoap 从gsoap官网(http://www.genivia.com/products.html#notice)下载最新版gsoap(博主用的是gsoap_2.8.45).gsoap ...

随机推荐

  1. 缺少新的栈标识:报出异常FLAG_ACTIVITY_NEW_TASK flag-是由于activity关闭之后开启一个新的acitivity时没有标识在栈中,所以需要给一个栈标识

    异常(栈里必须有activity的flag标识): 05-02 08:43:36.173: E/AndroidRuntime(3328): android.util.AndroidRuntimeExc ...

  2. 【webpack学习笔记】a01-基础构建

    webpack基于nodejs环境运行,首先确认已经安装了node.js. 基础构建流程 新建一个文件夹,这个就是你项目的根目录. 在命令行中使用npm init命令初始化npm,会得到一个 ==pa ...

  3. 实训任务02:Hadoop基础操作

    实训任务02:Hadoop基础操作 班级            学号               姓名 实训1:创建测试文件上传HDFS,并显示内容 需求说明: 在本地计算机上创建测试文件helloH ...

  4. Eclipse远程调试+FTPClient在jdk6以上写法不兼容问题的排查

    业务场景: 应业务新需求的UAT测试,需要部署一份新tomcat到测试环境.新环境正常启动并运行了一天,没太大差错.但今天发现原本在另一个老的tomcat下运行的好好的FTP上传文件模块突然出了问题. ...

  5. Js函数基本介绍

    1. 函数的创建 在JavaScript里面创建函数的关键字为function 函数名:就是在我们调用函数的时候需要书写的标识符 形参:全称为形式参数,调用函数的时候,这个函数所需要的参数是什么 实参 ...

  6. MySQL【数值处理函数】的使用方法

    数值处理函数 下边列举一些数学上常用到的函数,在我们的业务中有数学计算时会很有用的: 名称 调用示例 示例结果 描述 ABS ABS(-1) 1 取绝对值 PI PI() 3.131593 返回圆周率 ...

  7. Python 习题一

    1.使用while循环输入 1 2 3 4 5 6 8 9 10 # Author:Tony.lou i = 1 while i < 11: if i == 7: pass else: prin ...

  8. ORM-Model操作

    django为使用一种新的方式,即:关系对象映射(Object Relational Mapping,简称ORM). django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成 ...

  9. python中的lambda表达式

    lambda是python中匿名函数的写法  我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def  plus(a,b): return a+b lambda方法  ...

  10. 最近学习的 Node.js 之 http

    利用 http 模块开始写简单的web服务. 模块: const http=require('http'); const fs=require('fs'); const path=require('p ...