liyousen701118
驱动牛犊
驱动牛犊
  • 注册日期2003-12-09
  • 最后登录2013-05-30
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:5801回复:6

和我一起成长:在那里编辑驱动程序如何编译(VC+DDK)

楼主#
更多 发布于:2003-12-19 13:19
我用的是VC和DDK请问在那里编辑驱动程序,如何编译?
------------------------------------------
和我一起成长,帮助我就让你回忆你的当年.我渴望得到您的帮助
什么也不懂
abanwjc
驱动小牛
驱动小牛
  • 注册日期2003-12-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-19 14:23
论坛上到处都有啊,帅哥,你先看一下再问嘛!
转载mach的帖子:


1.改造ddkbinsetenv.bat
  把要求mstools的有关语句注释掉(若想在命令行环境开发驱动则还需加入call VC_DIRVC98BinVcvars32. bat),以便能在命令行使用vc的相关工具;若只想在IDE环境开发就不必调用Vcvars32.bat,因为相关工具的路径信息可以在vc环境中设置.)

2.创建一个目录DriverEnv(目录名随意),作为你开发驱动的大本营

3.在该目录下创建一个批处理文件MakeDrvr.bat,内容如下:
@echo off
if \"%1\"==\"\" goto usage
if \"%3\"==\"\" goto usage
if not exist %1binsetenv.bat goto usage
call %1binsetenv %1 %4
%2

cd %3
build -b -w %5 %6 %7 %8 %9

goto exit

:usage
echo usage MakeDrvr DDK_dir Driver_Drive Driver_Dir free/checked [build_options]
echo eg MakeDrvr %%DDKROOT%% C: %%WDMBOOK%% free -cef
:exit
  该批处理首先对传递的参数作一些检查,然后调用ddk的setenv命令设置环境变量,然后改变目录为源程序所
在驱动器和目录,并最后调用build,-b保证显示完全的错误信息,-w保证在屏幕上输出警告,在vc ide里的output窗口中可以看到这些错误和警告。

4.建立一个空白工程
  选File的new菜单项,然后选project栏的makefile,然后输入路径,一路next下去即可,visual studio提供两种配置win32 debug和win32 release.

5.修改这两种配置
  选project的settings菜单项win32 debug:
  在Build Command Line一栏填入MakeDrvr DDK_DIR SOURCE_DRIVE SOURCE_DIR checked [build options]
  在Rebuild all options一栏填入 -nmake /a
  在output file一栏填入与sources文件中的TARGETNAME相同的文件名
  在Browse info file name一栏填入obji386checked(与TARGETNAME相同的文件名,见下述).bsc

  win32 release:
  在Build Command Line一栏填入MakeDrvr DDK_DIR SOURCE_DRIVE SOURCE_DIR free [build options]
  在Rebuild all options一栏填入 -nmake /a
  在output file一栏填入与sources文件中的TARGETNAME相同的文件名
  在Browse info file name一栏填入obji386free(与TARGETNAME相同的文件名).bsc
  注:DDK_DIR一般可以写成%BASEDIR%,build options一般为-cef即已足够

6.添加源文件到工程
  可以新建,也可以添加,这和普通的win32开发一样。

7.添加资源文件
  选INSERT的RESOURCE菜单项即可

8.把文件makefile放入源程序目录,其内容总是
#
# DO NOT EDIT THIS FILE!!! Edit .sources. if you want to add a new source
# file to this component. This file merely indirects to the real make file
# that is shared by all the driver components of the Windows NT DDK
#

!INCLUDE $(NTMAKEENV)makefile.def

9.把文件Sources放入源程序目录,内容为
  TARGETNAME=RamDrive//这是要生成的驱动程序.sys文件的名字
  TARGETPATH=obj //.sys文件所在目录的上层目录,(由于ddk的bug)应手工在obj目录下创建checked和free目录,以作为.sys的最终存放目录
  TARGETTYPE=DRIVER //驱动程序的类型,一般不变
  INCLUDES=$(BASEDIR)inc //ddk包含文件路径,一般不变
  SOURCES=RamDrive.cpp RamDrive.rc //源文件(不要头文件),资源文件
  BROWSER_INFO = 1 //若想要浏览信息,则要有本行;否则可无

10.因为MakeDrvr.bat在DriverEnv目录,所以应把该目录添加到vc的Executable files里面
  选tools的options菜单项,然后选directories页,在show directories for一栏选择Executable files,然后添加即可.

  至此,环境设置完毕,你可以按F7, build你的驱动程序了。




 
“老婆,快搬个凳子出来,一起看火星来的楼主升天啦!”
flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2003-12-19 14:24
我用的是VC和DDK请问在那里编辑驱动程序,如何编译?
------------------------------------------
和我一起成长,帮助我就让你回忆你的当年.我渴望得到您的帮助


再装一个driverstudio吧
下面这篇文章说不定对你有一些帮助
附件名称/大小 下载次数 最后更新
2003-12-19_用driverstudio开发驱动程序--入门篇.txt (5KB)  13
我思,故我在
abanwjc
驱动小牛
驱动小牛
  • 注册日期2003-12-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-19 14:27
楼上的,你给的地址不可用哦!!
“老婆,快搬个凳子出来,一起看火星来的楼主升天啦!”
liyousen701118
驱动牛犊
驱动牛犊
  • 注册日期2003-12-09
  • 最后登录2013-05-30
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-19 14:45
abanwjc兄给的太难对于初学者来说并不完全明白为什么要这样一来设置,所以需要给一个固定模式.所有的明白需要仔细和慢慢揣磨.您能介绍一个固定的设置办法吗?我看了还是不明白.
----------------------------------------------
楼上的兄弟我不知道您说的是DRIVERSTDIO 还是DRIVERWORK.他门是一回事吗?写USB入口函数它认吗?
什么也不懂
flycat0101
驱动小牛
驱动小牛
  • 注册日期2002-06-24
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望22点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-12-19 14:50
楼上的,你给的地址不可用哦!!

那我就贴出来吧



编者按:本文的内容主要由DriverStudio的随机文档翻译整理而来。本文的读者最好有以下软件:DriverStudio2.5,Visual Studio6.0,以及Windows 2000 DDK。本文假设你已安装了这些软件。DriverStudio2.5可在驱动开发网(www.Driverdevelop.com)下载到测试版,Windows 2000 DDK可在微软的网站免费下载,Visual Studio 6.0 需要购买。
 作者:杨军  E-mail:y9980@263.net
用DriverWorks为 Windows 98 , Windows Me, Windows NT , Windows 2000 ,和 Windows XP 开发驱动程序
简介
    DriverWorks 通过提供强大并且先进的代码生成向导――DriverWizard,还有库和例子中成千上万行经过严格测试的代码,简化了设备驱动程序的开发。
    Windows NT 和 WDM 驱动程序接口为面向对象方法的应用提供了良好的条件。DriverWorks 充分利用操作系统面向对象的优良特性,与微软的 DDK 相比,它为设计基于 Windows NT 和 WDM(驱动程序设计模型)的驱动程序提供了更加友好的方式。使用 Driverworks,设计人员能以更快的速度开发 NT 和 WDM 驱动程序。在大多数情况下,DriverWorks 函数库的使用,可以大大减少驱动程序的代码长度。利用这些精心设计的函数,你几乎可以完成所有的工作。当然,DDK的C语言级的API函数也是可用的。


注意:Windows NT 设备驱动程序能运行在 Windows NT 或 Windows 2000 上;而 WDM 设备驱动程序能在 Windows 98 , Windows Me ,Windows 2000 ,和 Windows XP 上运行


    DriverStudio把那些每个驱动程序都需要的代码都封装成类库。库代码自动地处理例行的操作,这极大地简小了任务的复杂度。
  而且,C++编译器提供了ANSI C 所不具备的优点: 包括改进的类型安全检查,内连函数优化,以及更好的代码组织。
    DriverWizard――DriverWorks 的代码向导,与微软的Visual C++ 紧密的集成。超过1500行的驱动程序源代码框架只需几次鼠标点击就可完成。这些代码还包含了详细的注释。另外,DriverWizard 还能生成专为特殊设备定制的代码,比如:USB设备,PCI设备,即插即用设备,ISA 设备,等等。
    DriverStudio对Microsoft Developer Studio 的支持远不止用 DriverWizard 构造一个新工程这么简单。DriverWorks 提供了完整的和Microsoft Developer Studio 相似的开发环境,包括 checked 和 free 编译环境,相似的代码编辑器,错误代码定位,以及类浏览器。


编译库
    在你利用DriverWorks开始工作之前,你必须编译需要的库文件。你可以在Microsoft Visual Studio 环境中,或者用命令行方式编译库文件。
    下面介绍怎样在VC环境中编译库。
     1.启动Visual C++ 。
     2.选择菜单 File|Open Workspace。打开位于DriverStudio\\DriverWorks\\Source\\vdwlibs.dsw的工作空间文件。
     3.选择菜单 Build|Batch Build,在弹出的对话框中选择你想编译的库。
     4.点击Build编译你选择的库。
     怎样用命令行方式编译库,这里省略。



测试你的安装
   如果你想用命令行(不是在Microsoft Visual Studio中)编译一个简单的驱动程序例子,你必须先运行两个批处理文件(后缀为.bat的文件),这两个文件在DDk和Visual C++中。你也可以简单的通过运行开始菜单 程序/Development kits/Windows 2000 DDK 中的 Checked Build Environment 或 Free Build Enviroment 来完成此操作。
   第一批处理文件是 SETENV.BAT ,并且它要求 2 个参数:第一个是DDK 的根目录,第二个是\"free\" 或 \"checked\"。第二个参数告诉编译系统是否在驱动程序中加入调试信息。第二批处理文件是 VCVARS32.BAT ,它为编译器建立路径。


编译例子程序
   对 Windows NT 4.0 来说,最简单的例子在DriverStudio\\DriverWorks\\Examples\\NT\\HELLO 文件夹里。你可以编译这个例子,然后用DriverMonitor装载它
    对 WDM 驱动程序( 用于Windows 98 , Windows Me, Windows 2000 ,和 Windows XP ),最简单的例子在 DriverStudio\\DriverWorks\\Examples\\WDM\\HELLOWDM 文件夹里。你编译它,然后用控制面板里的添加新硬件向导来加载。
    如果你有 Microsoft Visual C++ 5.0 或更新的版本,你可以打开工作空间文件%DRIVERWORKS%\\examples\\nt\\hello\\hello.dsw ,然后在Visual C++环境中编译。编译 WDM 驱动程序,请用 HELLOWDM 例子。
如果你想从命令行编译,请按下面的方法设置工作目录,然后运行Build程序编译:


cd\\ProgramFiles\\Numega\\DriverStudio\\DriverWorks\\ examples\\nt\\hello
build


    请查看输出文件“ build.log ”(或“ buildchk.log ”或“ bldfre.log ”)看是否有错误。


在Windows 98和Windows Me 中装载驱动程序
   首先拷贝HELLOWDM.INF文件到系统文件夹。然后打开控制面板,运行添加新硬件向导。在添加新硬件向导的第一步中,选择从“列表中选择硬件”,注意HELLOWDM在其他硬件中。当询问制造商时,选择从磁盘安装,定位到INF文件所在的目录。如果你在安装时运行了DriverMonitor,你将会看到驱动程序弹出的消息。安装完成后,打开控制面板中的系统图标,安装的设备会出现在设备管理器中。


在Windows NT, Windows 2000, 和 Windows XP中加载驱动程序
   对于Windows 2000 和 Windows XP 中的WDM 驱动程序,方法与前面介绍的类似。
   对于Windows NT ,Windows 2000 和 Windows XP上的非WDM 驱动程序,运行 DriverMonitor 证实你的驱动程序工作正常。请注意 HELLO.SYS 将被创建在.\\I386\\*目录,此出的*取决于你的编译环境是 checked 还是 free。
   当你从 DriverMonitor 装载 HELLO.SYS 时,你应该在窗口中看到确认信息,然后是驱动程序发出的HELLO消息。
注意:在 Windows NT 下装载设备驱动程序,你需要以管理员帐户登录。
如果你没有足够的权限安装内核模式驱动程序,DriverMonitor 会提示错误消息。


    在从 DriverMonitor 退出前,请卸载驱动程序。
我思,故我在
abanwjc
驱动小牛
驱动小牛
  • 注册日期2003-12-17
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-19 15:11
driverworks 是driverstudio 的一部分。都是一个公司的。就象你问我VC和Visual Studio什么区别一样哦!有了楼上这为兄弟的认真负责的帮忙,我想楼主你没有什么问题解决不了了。我散先,如果你不用driverstudio 而直接用DDK的话,你有什么事可以给我发信。
“老婆,快搬个凳子出来,一起看火星来的楼主升天啦!”
游客

返回顶部