一个简单的显示驱动实例windows wdk 7600的 mirror(镜像) 显示驱动部分基本流程:Windows 2000 DDK包含了一个例子镜像驱动程序,在 上面3个目录中包括了组件源文件.目录    包含的源文件Video\displays\mirror\dll    镜像驱动程序Video\miniport\mirror    微端口驱动程序Video\displays\mirror\app    用户模式服务.也包含mirror.inf.打开disp文件夹 C:\WinDDK\76…
2012年4月,大二下学期,平静的课堂上老师通知了一个比赛...第一届大学生软件设计大赛!然后我选了第六题:windows屏幕录像.就这样我就开始了我的vc开发生涯. 之前学了c/c++作为基础,自认为当时的自己学的还算不错(当然,现在看起来很可笑),然后就天天逃课,和同学一起查阅资料,学习win32.MFC.差不多用了两周的时间了解了一下在windows平台下有哪些屏幕录像的方法,GDI.DX.mirror driver 等等,最后由于题目要求的性能比较高(超级烂的硬件下还要求cpu消耗低于1…
出处:http://www.embeddedlinux.org.cn/html/yingjianqudong/ 一.开发环境 主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.前提知识 1.Linux输入子系统(Input Subsystem): 在Linux中,输入子系统是由输入子系统设备驱动层.输入子系统核心层(Input Core)和输入子系统事件处理层(Even…
我已被用来VS2010开发环境,之前曾经与vs2010驱动的开发环境.重装系统,一次又一次的配置,找了好几篇文章,配置没有成功,在配置阶段突然成功了,直接把原来的驱动程序的配置文件将能够接管使用. 当然首先: 打开(生成-->配置管理器) 并新建一个名称为"Dirver"的解决方式配置 从此处复制设置:debug. 此时会在project文件夹下成成一个配置文件. 将以下内容拷贝到配置文件里,关闭project又一次打开就可以. <?xml version="1.…
VC下载文件显示进度条 逗比汪星人2009-09-18上传   by Koma http://blog.csd.net/wangningyu http://download.csdn.net/detail/wangningyu/1674247…
你的网站或应用程序存在哪些问题?如果你在等着用户来告诉你,那么你只能看到所有的问题中已经暴露的那极小的一部分.要知道,那只是"冰山一角"! 而且,如果你真的是在守株待兔,我不得不很抱歉地告诉你,你有点失职--你应该比用户更了解你的程序的健康状况.每当有用户告诉我一个他们在使用我的软件的过程中碰到的"善意的错误"时,我总会感到局促不安.甚至有些惭愧.我没有在用户把问题告诉我之前发现它们,并且事先解决它们,这就是我的失职.我忽视了对程序崩溃应付的责任. 任何负责任的软件…
Linux摄像头驱动学习之:(二)通过虚拟驱动vivi分析摄像头驱动 一.通过指令 "strace -o xawtv.log xawtv" 得到以下调用信息: // 1~7都是在v4l2_open里调用 1. open 2. ioctl(4, VIDIOC_QUERYCAP // 3~7 都是在get_device_capabilities里调用 3. for() ioctl(4, VIDIOC_ENUMINPUT // 列举输入源,VIDIOC_ENUMINPUT/VIDIOC_G_…
关于测试驱动的开发模式以及实战部分,建议看<Python Web开发测试驱动方法>这本书…
前面的几篇文章已经分析了v4l2的框架,对框架的分析是比较粗浅的,能基本清楚函数之间的调用过程.但是很多内容并没有分析,比如说里面有很多ioctl,并没有分析哪些ioctl是必须的,也没有分析如何从应用程序去获得摄像头数据.在本篇文章中,将根据虚拟驱动vivi的使用彻底分析摄像头驱动. 要想分析使用过程,必须得到应用程序的源码.xawtv的源码可以从 http://www.kraxel.org/releases/xawtv. 在我们进行分析源码的时候,当然可以从xawtv的main函数进行分析,…
领域驱动设计之领域模型 加一个导航,关于如何设计聚合的详细思考,见这篇文章. 2004年Eric Evans 发表Domain-Driven Design –Tackling Complexity in the Heart of Software (领域驱动设计),简称Evans DDD.领域驱动设计分为两个阶段: 以一种领域专家.设计人员.开发人员都能理解的通用语言作为相互交流的工具,在交流的过程中发现领域概念,然后将这些概念设计成一个领域模型:由领域模型驱动软件设计,用代码来实现该领域模型:…
本篇仿照vivi.c 写虚拟视频驱动,代码(myvivi.c+fillbuf.c+Makefile)如下: //==========================myvivi.c=======================================/* 仿照vivi.c */#include <linux/module.h>#include <linux/delay.h>#include <linux/errno.h>#include <linux/fs…
win7系统下或者64位系统下,安装完mysql-connector-odbc驱动后,直接进入:管理工具--数据源(ODBC),点击添加不显示该ODBC驱动 问题解决如下: C:\Users\Administrator>cd\windows\SysWOW64 C:\windows\SysWOW64>odbcad32 回车弹出 ODBC数据源管理器,在此窗口下进行添加操作即可看到:MySQL ODBC 5.1 Driver,点击完成,进行后续操作,完成添加操作,图示如下: 输入要链接的数据库信息…
HDMI是(High Definition Multimedia Interface)的缩写,意思是高清晰度多媒体接口,是一种数字化视频/音频接口技术,适合影像传输的专用型数字化接口,可同时传送音频和影像信号,最高数据传输速度为48Gbps(2.1版),HDMI相较于VGA接口,它传输的信息量大,色彩度高,传输速度快等显著优点. 一般来说驱动HDMI有两种方法,有些开发板是用一颗专用的HDMI芯片ADV7511做HDMI的输出使用,ADV7511 是一款高速高清晰度多媒体接口(High Defi…
Java Web开发方案有多种可供选择,这里列举一些经典的开发模式进行横向比较,为Java Web的开发模式选择提供参考.除此之外还有好多方案(如Tapestry和Wicket等等)并不了解,这里就不列举了. JSP+JAVABEAN开发模式:    特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性.    缺点:页面将控制与显示集于一身.    结论:简单,适合小型项目的快速构建与运行. JSP+Servlet+JavaBean开发模式:    特点:JSP作…
Linux驱动学习的最大困惑在于书籍的缺乏,市面上最常见的书为<linux_device_driver 3rd Edition>,这是一本很经典的书,无奈Linux的东东还是过于庞大,这本侧重于实战的书籍也只能停留在基本的接口介绍上,更深入的东东只能靠我们自己摸索了.但万事总有一个开头,没有对Linux驱动整体框架的把握是很难做一个优秀的驱动开发者的.除了这本Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini合著的经典大作外,另一本理论…
Linux 内核配置机制(make menuconfig.Kconfig.makefile)讲解 前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式——在一个独立的文件夹通过makefile配合内核源码路径完成 那么如何将驱动直接编译进内核呢?     在我们实际内核的移植配置过程中经常听说的内核裁剪又是怎么麽回事呢? 我们在进行linux内核配置的时候经常会执行make menuconfig这个命令,然后屏幕上会出现以下界面: 这个界面是怎…
UVC设备也是一个usb设备,在uvc_driver.c中的init函数会调用usb_register注册,根据id_table发送可支持的设备后调用probe函数,其会去uvc_register_chains注册所有uvc_device,前面说的根据id_table匹配的过程是usb_bus总线,uvc是另一个东西了 vivi.c是一个摄像头驱动模板或者实例,安装vivi模块后会产生一个虚拟的摄像头,使用应用程序可以获得其提供的虚拟数据并显示. vivi_init vivi_create_in…
我们知道rabbitmq是一个专业的MQ产品,而且它也是一个严格遵守AMQP协议的玩意,但是要想骚,一定需要拿出高可用的东西出来,这不本篇就跟大家说 一下cluster的概念,rabbitmq是erlang写的一个成品,所以知道如何构建erlang的node集群就ok了,他需要一个统一的cookie机制...本篇的测试环境如下: centos1:192.168.23.147 centos2:192.168.23.145 截图如下: 一:cookie机制 刚才也说了,要想实现cluster集群,必…
摘要 任何一个C#入门的程序员都知道——当一个类型在实现接口的时候,有两种方法实现:显式实现.隐式实现.而且大家也都知道,当一个类型实现的两个接口存在相同成员定义时,显示实现可以解决这种情况. 但是,在一个命名比较规范的项目中,几乎不可能出现上述情况. 那么,显示实现有什么具体存在的意义吗? 本人根据这小几年的开发历经,感觉显式实现最觉的两个作用就是: 改变接口成员的使用权限 改变接口成员的出入参数 下面本人将会对这两种作用进一一说明 接口定义 本篇文章将会使用一个示例来讲述这两个作用. 我们先…
Kiwi是iOS开发一个行为驱动开发库.目标是提供一个BDD库,精美的简单安装和使用. 安装 使用CocoaPods安装: pod 'Kiwi'如果使用Xcode5则使用: pod 'Kiwi/XCTest' SPEC_BEGIN(类名)和SPEC_END是扩大到开始和结束KWSpec类和实例组声明的宏. beforeAll(aBlock) - 当前scope内部的所有的其他block运行之前调用一次 afterAll(aBlock) - 当前scope内部的所有的其他block运行之后调用一次…
通过VC6LineNumberAddin能够解决这个问题,方法如下. 一.下载该文件. 网上很多免费的. 二.使用方法:            [1]:打开VC++6.0,点击菜单“工具(Tools)”-->“定制(Customize)”,       选择“附加项和宏文件(Add-ins and Macro Files)”选项卡,点击右       下角的“浏览按钮”,文件过滤器选择dll,然后找到你下载的dll文件即       可.[2]:双击下载的VC6LineNumberAddin.r…
最近在开发的微信的微商城,出现这样一种情况: pc上浏览正常,但是一到手机上浏览就会缺少部分元素 解决办法: 找了很多原因,还通过uc浏览器把网页到存下来了,发现并没有缺少元素,只是没有显示出来,后来才发现原来是我这里全部使用的是px来控制元素位置的,但是手机浏览的时候超出了手机屏幕的px,所以导致了有些网页元素显示不全. 任意浏览器的默认字体高都是16px.所有未经调整的浏览器都符合: 1em=16px.那么12px=0.75em,10px=0.625em.为了简化font-size的换算,需…
在codeproject里找了许久,发现这样一个VC下载文件并显示进度条的源码,于是添加了些中文注释: 1.下载线程函数: UINT DownloadFile(LPVOID pParam) { CWnd*           pwnd = AfxGetMainWnd(); CProgressCtrl*  m_Prog = (CProgressCtrl*)pwnd->GetDlgItem(IDC_PROGRESS1); CButton*        bStart = (CButton*)pwnd…
linux内核已经具备usb驱动,所以一些设备使用可以免驱,libusb是针对linux内核中ubs驱动的一套api,会自行调用usb驱动接口,并为应用提供api接口,将usb设备开发减少为应用层开发. 一.usb驱动配置: ..... 二.libusb移植: ..... 三.基于libusb的应用开发: ..... 四.深入libusb: ..... 五.深入内核usb驱动: ..... 未完待续....…
带U盘功能的的USB接口设备已经越来越常见了.如果能够把产品说明书或者产品设备驱动程序做成一个USB CDROM,那该多方便.假设:你已经有了USB mass storage驱动.你的任务是在此基础上增加一个USB CDROM.请在手边准备好:USB2.0协议,Mass storage协议,SCSI协议(可以忽略).此外,你需要一个debug工具:bushound.    步骤:        1,制作CDROM image文件:        2,处理usb device request:Ge…
我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本文介绍了透明位图的制作知识,并将透明位图在一个对话框中显示了出来.本文所使用的原始位图及程序编译运行后的界面效果如下图所示: 图一.原始位图 图二.对话框界面上透明显示位图 一.实现方法 绘制"透明"位图是指绘制某一位图中除指定颜色外的其余部分,我们称这种颜色为"透明色".通过将位图的背景色指定为"透明色"…
在字符设备驱动开发的入门教程中,最常见的就是用device_create()函数来创建设备节点了,但是在之后阅读内核源码的过程中却很少见device_create()的踪影了,取而代之的是device_register()与device_add(),将device_create()函数展开不难发现:其实device_create()只是device_register()的封装,而device_register()则是device_add()的封装. struct device *device_c…
判断哪些文件被编译进内核: 1.通过 make menuconfig 查看 2.比如查看gpio类型的文件,输入 ls drivers/gpio/*.o,有生成.o文件表示被编译进内核 在编写驱动程序之前要保证该GPIO口没有被其他程序占用,若被占用则需要取消编译那个驱动程序. /arch/arm/mach-exynos/include/mach/gpio-exynos4.h /drivers/gpio/gpio-exynos4.c #include <linux/init.h> #inclu…
1. python 工具 #coding = utf-8 import pty import os import select def mkpty(): master1, slave = pty.openpty() slaveName1 = os.ttyname(slave) master2, slave = pty.openpty() slaveName2 = os.ttyname(slave) print '\nslave device names: ', slaveName1, slave…
videobuf2-core.h中的vb2_buffer,记录了v4l2_buffer ,驱动可以对vb2_buffer的v4l2_buffer进行操控, vb2_buffer是v4l2框架层的代码,而v4l2_buffer也是用户空间的应用程序,可以读取的一个数据结构. 在reqbuf的时候把每个vb2_buffer会放入vb2_queue中,通过vb2_buffer的index在数组中保存 查看myuvc可以更好的理解队列,有两个队列,qbuf后通过,启动摄像头,select在videobu…