通常驱动程序的调试都是用ddk在cmd中完成的。这部分我暂时略过。下面先介绍如何设置vc++6.0在Visual Studio 6.0集成环境中开发设备驱动程序的方法。

在Windows上,Windows DDK提供的开发环境是基于命令行的,操作起来极为不便,而Visual Studio 6.0给我们提供了非常友好易用的集成环境,让我们有如虎添翼之感。
  那么,能否利用Visual Studio的集成环境来开发驱动程序呢?答案是可以的。通过对Visual Studio集成环境的简单设置,创建好自己的驱动开发集成环境就可以了。

1,

第一:安装Vc++6.0,我装的是英文版,中文版应该也可以,不过我没试。

第二:安装winXP DDK,注意,安装目录中间不能有空格,比如D:\Program Files不行,

我直接装在了D盘,装完后设置环境变量DDKROOT为安装目录D:\WINDDK\2505。

2,创建一个目录,作为开发目录,我是利用<<PCI设备开发宝典>>的光盘中的工程文件PCI9052Demo,直接考到E盘,所以,工作目录下是E:\PCI9052Demo

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%% F: %%WDMWorkshop%% free -cef
:exit

解释以下:

1% 是DDK_dir,也就是ddk的安装目录

2% 是Driver_Drive,是你工作目录所在的盘符,这里是E:

3% 是Driver_Dir,是你工作目录的路径,这里是E:\PCI9052Demo

4% 是编译模式,checked表示调试模式,free表示发行模式,这里是出问题的地方,后面再说。

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

4,建立一个空白工程
 选File的new菜单项,然后选project栏的makefile,然后输入路径,一路next下去即可,visual studio提供两种配置win32 debug和win32 release. 按照cant的《windows wdm 设备驱动程序开发指南》方法,可以删除掉,添加Win32 Checked和 Win32 Free

5,VC的Project->settings里面改变设置

修改这两种配置

Free

build command line:
e:\PCI9052Demo\MakeDrvr %DDKROOT% e: e:\PCI9052Demo free

rebuild all opinions:
-nmake /a

output filename:
PCI9052Demo.sys

browse info file name:
objfre\i386\PCI9052Demo.bsc

=============================================================
Checked

build command line:
e:\PCI9052Demo\MakeDrvr %DDKROOT% e: e:\PCI9052Demo checked

rebuild all opinions:
-nmake /a

output filename:
PCI9052Demo.sys

browse info file name:
objfre\i386\PCI9052Demo.bsc

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 //若想要浏览信息,则要有本行;否则可无

这样设置完之后,按编译会出现错误的,错误如下:

usage: setenv [fre|chk] [64] [hal]
Example: setenv d:\ddk chk set checked environment
Example: setenv d:\ddk set free environment (default)
Example: setenv d:\ddk fre 64 sets 64 bit free environment
Example: setenv d:\ddk hal sets free hal environment
Example: setenv d:\ddk fre hal Same
‘build’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。

PCI9052Demo.sys - 0 error(s), 0 warning(s)

问题出在什么地方呢?关键在于XP的DDK的编译模式已经不再是free和checked了,而是上面的fre和chk,另外还加了fre 64,hal, fre hal。

解决办法就是:VC的Project->settings里面设置的编译模式改成fre和chk,然后,输出就正常了,

--------------------Configuration: PCI9052Demo - Win32 fre--------------------
BUILD: Object root set to: ==> objfre
BUILD: Adding /Y to COPYCMD so xcopy ops won’t hang.
BUILD: /i switch ignored
BUILD: Compile and Link for i386
BUILD: Loading D:\WINDDK\2505\build.dat…
BUILD: Computing Include file dependencies:
BUILD: e:\pci9052demo\sources. unexpected in directory with DIRS file
BUILD: Ignoring e:\pci9052demo\sources.
BUILD: pci9052demo found in dirs., is not a subdirectory of e:\pci9052demo
BUILD: Examining e:\pci9052demo directory tree for files to compile.
e:\pci9052demo
BUILD: Linking e:\pci9052demo directory
BUILD: Done

PCI9052Demo.sys - 0 error(s), 0 warning(s)

WINDOWS XP下驱动开发环境设置(DDK+VC6.0)相关推荐

  1. 搭建Win XP下iPhone开发环境

    这篇文章将告诉你怎样在Windows XP SP2操作系统上搭建iPhone 2.x开发环境. 在开始之前,请先准备好 7zip 纳米机器人 RaySource 文章中的资源提供了纳米盘(需要纳米机器 ...

  2. Windows 7 下 QT5 开发环境搭建

    Windows7 下 QT 开发环境常见搭配方法有两种. 第一种是:QT Creator+QT SDK: 第二种是:VS+qt-vs-addin+QT SDK: 以上两种均可,所需文件见 QT 社区, ...

  3. 如何正确入门Windows系统下驱动开发领域?

    [作者] 猪头三 作者网站: http://www.x86asm.com 原文链接: http://blog.csdn.net/Code_GodFather/...0/5975901.aspx [贡献 ...

  4. Windows 10下Linux开发环境搭建

    摘要:本文说明在Windows10环境下搭建Linux开发环境的步骤.无需安装特定的虚拟机环境,只需要在Windows环境下通过应用商店安装基于WSL的Ubuntu系统即可.并且通过VSCode安装W ...

  5. Java windows系统下JDK开发环境配置和环境变量配置

    一.JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二.Ecli ...

  6. c语言 vc++6.0集成开发环境的使用,VC6.0集成开发环境的使用.ppt

    <VC6.0集成开发环境的使用.ppt>由会员分享,可在线阅读,更多相关<VC6.0集成开发环境的使用.ppt(11页珍藏版)>请在人人文库网上搜索. 1.VC6.0集成开发环 ...

  7. Windows XP下,JDK环境变量配置

    2019独角兽企业重金招聘Python工程师标准>>> 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08: 2.安装完 ...

  8. 关于windows XP下北洋BTP-2200E打印设置问题

    (1)操作使用手册:http://www.chongshang.com.cn/manual/m_BTP2200E.shtml (2)驱动安装:http://www.chongshang.com.cn/ ...

  9. Windows系统下Java开发环境搭建

    卸载JDK 1.删除Java的安装目录(通过右键点击我的电脑->属性->高级系统设置->环境变量->系统变量中的JAVA_HOME找到Java的安装目录) 2.删除JAVA_H ...

  10. windows 7 下 .net 开发环境的搭建

    第一步,安装IIS和.net Framework 进入"控制面板\程序\程序和功能" 点击"打开或者关闭windows功能" 勾选"Microsot ...

最新文章

  1. 哪个更快:Java 堆还是本地内存
  2. 有道云笔记导入到CSDN博客
  3. Establishing SSL connection without server's identity verification is not recommended.
  4. 【CodeForces - 501C】Misha and Forest (思维构造,树,数学异或)
  5. Python循环完成剪刀石头布游戏
  6. 帆软 JS给填报控件(单元格)赋值 包含扩展单元格赋值
  7. gbase里的分布表与复制表
  8. SQL 随机抽取样本
  9. 圆的面积函数定义及调用
  10. C语言实现一元二次方程的实根和复根
  11. 代码还是要亲自动手写才行啊
  12. Elasticsearch 7.2.0 搜索时报 all shards failed 错误
  13. 知乎广告效果怎么样?有哪些优势呢?
  14. 星起航跨境—亚马逊发展现状及未来趋势分析
  15. Java中使用MultipartFile类型接收前端上传的文件过大报异常解决
  16. Linux系列讲解 —— SSH登录
  17. 如何将ppt转换为jpg图片
  18. anasys hpc集群_ANSYS HPC高性能计算与Wiseteam高端图形工作站方案
  19. bbpress 添加 featured image
  20. Windows上如何手动安装Perl模块(ActivePerl)

热门文章

  1. 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中...
  2. 基于STM32的录音与播音
  3. robocode机器人案例
  4. SQL注入-盲注(布尔盲注与时间盲注)
  5. 网络图结构中节点度分布的散点图
  6. mysql正则mybatis中用法_SQL正则表达式及mybatis中使用正则表达式
  7. KL散度 JS散度 熵
  8. python opencv 二值化 计算白色像素点并计算比例输出可视化
  9. 雷达多普勒频率计算公式_现代战争的千里眼,顺风耳——雷达
  10. 数字频率系数测试软件,sia smaartlive7