CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

vc中怎样编译驱动程序

楼主shy007(aq)2001-10-29 19:13:05 在 VC/MFC / 基础类 提问

vc中怎样编译驱动程序?ddk? 问题点数:30、回复次数:3Top

1 楼alpha_x(我欲乘风而去)回复于 2001-10-29 19:15:34 得分 1

VToolsDTop

2 楼shy007(aq)回复于 2001-10-30 16:41:21 得分 0

谢谢   alpha_x(我欲乘风而去),我想知道怎样配置vc的项目,比如编译选项、链接选项??Top

3 楼xyangj(杨军)回复于 2001-12-03 10:19:07 得分 29

在Visual   Studio   6.0集成环境中开发设备驱动程序的方法  
   
    在Windows上,Windows   DDK提供的开发环境是基于命令行的,操作起来极为不便,相信进行过驱动程序开发的朋友一定对此深恶痛绝。另一方面,Visual   Studio   6.0却给我们提供了非常友好易用的集成环境,让我们有如虎添翼之感。  
    那么,能否利用Visual   Studio的集成环境来开发驱动程序呢?笔者经过多方探索,并结合自己开发驱动的经验,摸索出了一套实用的方法,通过对Visual   Studio集成环境的简单设置,创建了自己的驱动开发集成环境了。  下面笔者的一些经验奉献出来与大家共享,如有不当,欢迎指正。  
   
  0.系统要求已安装  
    DDK  
    Visual   C++6.0(安装时选上所有工具)  
   
  1.改造ddk\bin\setenv.bat  
    把要求mstools的有关语句注释掉(若想在命令行环境开发驱动则还需加入call   VC_DIR\VC98\Bin\Vcvars32. bat),以便能在命令行使用vc的相关工具;若只想在IDE环境开发就不必调用Vcvars32.bat,因为相关工具的路径信息可以在vc环境中设置.)  
   
  2.创建一个目录DriverEnv(目录名随意),作为你开发驱动的大本营  
   
  3.在该目录下创建一个批处理文件MakeDrvr.bat,内容如下:  
  @echo   off  
  if   "%1"==""   goto   usage  
  if   "%3"==""   goto   usage  
  if   not   exist   %1\bin\setenv.bat   goto   usage  
  call   %1\bin\setenv   %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一栏填入obj\i386\checked\(与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一栏填入obj\i386\free\(与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你的驱动程序了。  
  Top

相关问题

  • vc编译 程序
  • 怎么样编译驱动程序(vc++ 6.0 + ddk2000)或者(vc++ 6.0 + ddk98)?
  • 用VC++编译C++程序??
  • 关于vc中编译sdk程序
  • VC下编译C 程序的问题
  • 关于编译pci设备驱动程序出现的问题
  • 一块很古老的板卡,有驱动源程序*.asm,现在怎样用vc++编译这个驱动以及怎么在接下来的程序中调用呢?
  • vc++如何开发驱动程序
  • 怎么用VC编写驱动程序?
  • 程序编译

关键词

  • win32
  • 驱动
  • 文件
  • 编译
  • 文件名
  • vc
  • sources
  • 目录
  • ddk
  • 栏填入

得分解答快速导航

  • 帖主:shy007
  • alpha_x
  • xyangj

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo