上一页 1 ··· 36 37 38 39 40 41 42 43 44 ··· 52 下一页
摘要: 微软的AVI文件格式是一种用于捕获、编辑和回放audio-video序列的RIFF文件规范。总体上讲,AVI文件包含多个针对不同数据的流。 大部分AVI序列使用audio和video流。 一个简单的AVI序列特例可以只包含video数据而不包含audio数据。本部分并没有介绍OpenDML对于AVI文件格式的扩展。如果要对其深入研究, 请参考OpenDML AVI M-JPEG文件格式小组委员会出版的《OpenDML AVI File Format Extensions》。FOURCCs一个FOURCC( four-character code,4字符码)是一个包含4个ASCII码字符串的32 阅读全文
posted @ 2010-06-19 21:49 andriod2012 阅读(1329) 评论(0) 推荐(0) 编辑
摘要: 函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc()函数有一个参数,即要分配的内存空间的大小:void*malloc(size_tsize);calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。void*calloc(size_tnumElements,size_tsizeOfElement);如果调用成功,函数malloc()和函数calloc()都将返回所分配的内存空间的首地址。函数malloc()和函数calloc() 的主要区别是前者不能初始化所分配的内存空间,而后者能。如果由mal 阅读全文
posted @ 2010-06-19 21:47 andriod2012 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 52 49 46 46 -> FORCC码'RIFF'的ASCII值,说明是一个RIFF文件。RIFF( resource interchange file format ) 。84 CF 4A 00 -> 表示文件大小的4个字节,由于windows是小头的,所以文件大小为0x004ACF84,即4902788字节,由于该size不包含开头的8字节,所以文件总大小为4902796字节41 56 49 20 -> FOURCC码'AVI '的ASCII码,文件类型,说明是一个avi文件。AVI(AudioVideoInterleaved)。 4C 阅读全文
posted @ 2010-06-19 21:44 andriod2012 阅读(1067) 评论(0) 推荐(0) 编辑
摘要: 驱动程序是通过设备句柄来控制设备的,应用程序要控制设备,也需要获得设备句柄,然后使用驱动程序体提供的DeviceIoControl接口来控制设备。那么应用程序是如何获得设备句柄的呢?通常流接口驱动程序会使用两个结构体,驱动上下文结构体和设备上下文结构体。设备句柄会保存在设备上下文结构体中,驱动上下文结构体会保存设备上下文结构体的地址。这样通过驱动上下文结构体就能够得到设备句柄。下面我定义一个驱动上下文指针dwDriverContext来说明这个指针是如何被传递的。1、 在执行USBDeviceAttach的函数中,函数ActivateDevice用来激活流接口,它将dwDriverContex 阅读全文
posted @ 2010-06-15 10:08 andriod2012 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 有人也许和我一样比较心急,想尽快知道如何去写一个具体的驱动程序,这里,假设您对驱动程序已经有比较好的了解,告诉大家一个快速上路的方法。当然,如果您有足够的时间我建议在动手之前还是深入了解一下CE整个系统架构。在CE中,最简单的一个驱动程序莫过于一个内置(Built-in)设备的流接口驱动。对于一个不支持热拔插的设备,最快捷的方法就是为其实现一个内置的流接口的驱动。对于这样一类驱动程序,我们只需要按一种特定的规则实现一个动态库,其中实现对所有的硬件功能的调用,再将这个动态库加入系统中,然后设置相关的注册表项,使得在系统启动时设备管理器能识别并且加载这个设备即可。1 实现动态链接库此动态链接库与应 阅读全文
posted @ 2010-06-15 10:08 andriod2012 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 静态连接库就是把(lib)文件中用到的函数代码直接链接进目标程序,程序运行的时候不再需要其它的库文件;动态链接就是把调用的函数所在文件模块(DLL)和调用函数在文件中的位置等信息链接进目标程序,程序运行的时候再从DLL中寻找相应函数代码,因此需要相应DLL文件的支持。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在. 阅读全文
posted @ 2010-06-15 10:06 andriod2012 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 我们可以创建一种文件里面包含了很多函数和变量的目标代码,链接的时候只要把这个文件指示给链接程序就自动地从文件中查找符合要求的函数和变量进行链接,整个查找过程根本不需要我们操心。这个文件叫做 “库(Libary)”,平时我们把编译好的目标代码存储到“库”里面,要用的时候链接程序帮我们从库里面找出来。静态链接库: 在早期库的组织形式相对简单,里面的目标代码只能够进行静态链接,所以我们称为“静态库”,静态库的结构比较简单,其实就是把原来的目标代码放在一起,链接程序根据每一份目标代码的符号表查找相应的符号(函数和变量的名字),找到的话就把该函数里面需要定位的进行定位,然后将整块函数代码放进可执行文件. 阅读全文
posted @ 2010-06-15 10:05 andriod2012 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起。比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态lib只是壳子。动态库一般会有对应的导入库,方便程序静态载入动态链接库,否则你可能就需要自己LoadLibary调入DLL文件,然后再手工GetProcAddress获得对应函数了。有了导入库,你只需要链接导 阅读全文
posted @ 2010-06-15 10:04 andriod2012 阅读(135) 评论(0) 推荐(0) 编辑
摘要: .什么是静态连接库,什么是动态链接库 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接 库。静态链接库与静态链接库调用规则总体比较如下。对于静态链接库(比较简单):首先,静态链接库的使用需要库的开发者提供生成库的.h头文 阅读全文
posted @ 2010-06-15 10:02 andriod2012 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 今天在CE 6.0中添加了一个驱动,在buid我的驱动的时候,显示有链接错误。是我驱动中调用FSDMGR_AdvertiseInterface,等几个fsdmgr中的函数,链接有问题。由于以前在网上看到的资料,说产生链接错误,很有可能是环境配置有问题。基于此,我换了个机器,重新配置环境,结果错误照常产生。后来请教了一位大侠,大侠提醒,很有可能是链接的lib有问题。在大侠的帮助下,进行了一下尝试:一、驱动的sources文件中调用的是coredll.lib,怀疑ce6.0中的lib分为用户(coredll.lib)和内核(k.coredll.lib),所以将coredll.lib换成了k.cor 阅读全文
posted @ 2010-06-15 10:01 andriod2012 阅读(342) 评论(0) 推荐(0) 编辑
上一页 1 ··· 36 37 38 39 40 41 42 43 44 ··· 52 下一页