代码改变世界

INF Version Section详解

2012-04-26 15:37 by java20130722, 591 阅读, 0 推荐, 收藏,
摘要:最近在学习设备驱动程序方面,了解到安装sys文件需要INF文件,边学习边做笔记原文链接:http://msdn.microsoft.com/en-us/library/windows/hardware/ff547502(v=vs.85).aspx[Version] Signature="signature-name" [Class=class-name] [ClassGuid={nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}] [Provider=%INF-creator%] [LayoutFile=filename.inf [,filename 阅读全文

INF文件中的HKR

2012-04-26 09:53 by java20130722, 421 阅读, 0 推荐, 收藏,
摘要:原文链接地址:http://blog.csdn.net/weiwei22844/article/details/6088889最近在学习驱动编程的INF文件格式时,在AddReg等directive中有很多与注册表相关的内容,现总结如下:HKCR代表HKEY_CLASSES_ROOT;HKCU代表HKEY_CURRENT_USER;HKLM代表HKEY_LOCAL_MACHINEHKU代表HKEY_USERS比较麻烦的是HKR,该缩写代表那个注册表键值的缩写呢?通过查询帮助文档可以发现如下解释:(1)在DDInstall section中,HKR缩写表示的是设备的software key(软件 阅读全文

vs2008+WDK环境配置

2012-04-24 10:47 by java20130722, 281 阅读, 0 推荐, 收藏,
摘要:环境:WDK (7600.16385.1版默认安装目录) +WindowsXP + VS2008 其他VS或者Vista/Win7应该都是大同小异的。参考网站:http://www.cnblogs.com/Jesses/articles/1636331.html http://blog.csdn.net/hellward/article/details/5374539需要工具:ddkwizard+ddkbuild_bat+ddkbuild_cmd下面开始具体的步骤:step1:用默认目录安装WDK和ddkwizard,同时把ddkbuild.cmd和ddkbuild... 阅读全文

堆和栈的区别

2012-04-21 21:29 by java20130722, 169 阅读, 0 推荐, 收藏,
摘要:转自:http://www.cnblogs.com/pomp/archive/2007/10/19/930145.html 首先向其致敬!简单的可以理解为:heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、 栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等其操作方式类似于数据结构中的栈。2、 堆区(heap)— 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意 阅读全文

Linux 引导管理器 grub2 使用简介

2012-04-21 20:55 by java20130722, 357 阅读, 0 推荐, 收藏,
摘要:转自:杜昌彬的空间首先向其致敬!有改动。grub是Linux系统即其他类unix系统的主流bootloder,由于grub原来版本的设计存在很大缺陷,与以前的grub很不相同,其使用和配置也发生很大变化。现在很多Linux发行版本都使用了grub2作为引导系统,比如 Ubuntu。grub2是模块化的,可动态加载需要的模块,另外增加了更多的功能,具有较高的可扩展性。grub2支持自定义菜单的主题,命令更丰富,支持网络启动等。经过重新设计,将新的grub命名为grub2.grub2的安装非常简单,使用grub-install命令即可。如:# grub-install --root-directo 阅读全文

extern "C" 和 #ifdef __cplusplus 解释

2012-04-21 09:14 by java20130722, 267 阅读, 0 推荐, 收藏,
摘要:时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C"{和}处理其中的代码。 要明白为何使用extern "C",还得从cpp中对函数的重载处理开始说起。在c++中,为了支持重载机制,在编译生成的汇 阅读全文

VC6.0 +WDK 开发驱动的环境配置

2012-04-20 17:32 by java20130722, 405 阅读, 0 推荐, 收藏,
摘要:下面就来说明一下各种平台编译sys驱动的方法(包括64位平台)先看32位版本驱动的编译方法,首先你得准备一些编译必备工具:1.要安装VC62.安装DDK(装哪个呢?这个问题其实很简单的,只是很多人不明白,装DDK当然是越新越好了,越新支持的平台越多, 像2000DDK你是绝对 编译不出来64位sys的,因为它没带64位的库和编译器,所以我们选择现在最比较新的,2003DDK (WDK也可以),支持的平台很多,AMD64,IA64,2000,XP,2003都支持)。好了,这下我们的系统已经安装了最强的开发工具VC6,最新DDK,在VC里编译各个平台的驱动都没有问题了!开始,假设我们的DDK装在C 阅读全文

DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的区别

2012-04-20 15:36 by java20130722, 323 阅读, 0 推荐, 收藏,
摘要:首先,先从基础的东西说起,开发WINDOWS下的驱动程序,需要一个专门的开发包,如:开发JAVA程序,我们可能需要一个JDK,开发WINDOWS应用程序,我们需要WINDOWS的SDK,现在开发WINDOWS下的驱动程序,我们需要一个DDK/WDK。DDK(Driver Developer Kit)和WDK(Windows Driver Kit)的区别: 这个要说说驱动相关的一些历史: 1).95/98/ME下,驱动模型为:Vxd,相关资料可以看《编程高手箴言》的前几个章节,里面有很详细的介绍,虽然这个东西已经过时,但大概看看还是会增长见识的。 2).2000/XP/2003下,W... 阅读全文

VS和VC++6.0 编程时相对路径问题

2012-04-19 10:15 by java20130722, 242 阅读, 0 推荐, 收藏,
摘要:刚才在测试的时候发现这个问题,特记于此。 在cpp中用函数访问文件时,其相对路径不是相对于cpp所在的目录,而是相对于的工程性文件(如:, dsp, .dsw)所在的目录. 不过一般cpp和工程文件都放在一个目录下,所有一般都没有察觉,但是如果是向工程添加其他目录下的cpp文件时,可能就会出现问题了。 阅读全文

VS2008使用MSComm控件

2012-04-14 12:35 by java20130722, 236 阅读, 0 推荐, 收藏,
摘要:其实也不是自己完全原创,参考了不少人的资料。如果没有装过VC6.0的话就需要下载这个文件(人家要求的分数蛮高的)。先按照上面要求完成操作。然后按照如下步骤:菜单 Tool-->Choose toolbox items-->点击COM Components选项卡-->选中Miscrosoft Communications Control-->OK。之后你的toolbox上就有这个控件了。注意:在VS2008上,会自动生成CMscomm类,不过里面的函数名和VC6.0对应的函数名稍有不同。例如:VC6.0 VS2008SetPortOp... 阅读全文