请问如何设置DDK

lakelive 2002-09-04 09:59:20
Windows2000下,VC++6.0.装完DDK该如何设置,才能在VC中用到DDK?
...全文
471 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lakelive 2002-09-05
  • 打赏
  • 举报
回复
感谢各位支持!
问题我已经解决。原来问题出在两方面。1是装完DDK必须从新启动,windows环境变量才生效。2是Build Command Line中的文件路径中不能有空格,我安装的目录是Program Files,在Build Command Line中把%DDKROOT%改为E:\PROGRA~1\NTDDK。这样才成功。
nbgyf 2002-09-04
  • 打赏
  • 举报
回复
去微软的DDK网站,上面有详细的安装及环境设置介绍
wuxuan 2002-09-04
  • 打赏
  • 举报
回复
在VC环境中的INC文件目录\LIB文件目录\EXE文件目录中加上DDK的相关目录,就可以进行DDK程序的编译与LINK了.

另外,还可以使用DDK提供的字符模式编译环境.
_china 2002-09-04
  • 打赏
  • 举报
回复
在DDK的Build Environments(program->**DDK->Build Environments)中,
去选取你要的环境啊!
nuaawyd 2002-09-04
  • 打赏
  • 举报
回复
驱动程序开发环境:

要进行驱动程序的开发必须要用专门的工具包,一般来说,用得比较多的是microsoft提供的驱动程序开发包DDK进行开发。对应不同的操作系统,DDK的版本也不同,如WIN98操作系统的驱动程序要用WIN98DDK开发,WIN2000的要用WIN2000DDK等。但是所有的Windows DDK提供的开发环境是基于命令行的,操作起来极为不便,而另一方面,Visual Studio 6.0却给我们提供了非常友好易用的集成环境,让我们有如虎添翼之感。因此经过查阅资料,并结合一部分自己的经验,可以对Visual Studio 6.0进行如下的修改,可以完成在集成环境下的驱动程序的开发。
1.系统要求已安装
  DDK(视操作系统要求安装正确的版本,可从网上下载)
  Visual C++6.0(安装时选上所有工具)
2.由于Windows默认的环境变量空间太小,所以必须增大环境变量的大小,在CONFIG.SYS文件最后加入一行:
  SHELL=C:\WINDOWS\COMMAND.COM /E:4096 /P
3.创建一个目录DriverEnv(目录名随意,最好不要用中文名字和空格等特殊符号作为目录名,可能会造成不必要的错误)作为你开发驱动的大本营。
4.在该目录下创建一个批处理文件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窗口中可以看到这些错误和警告。
5.建立一个空白工程
  选File的new菜单项,然后选project栏的makefile,然后输入路径,一路next下去即可,visual studio提供两种配置win32 debug(调试版本)和win32 release(发行版本)。
6.修改这两种配置
  选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为DDK所在目录名,SOURCE_DRIVE为源程序所在驱动器名,SOURCE_DIR为源程序所在路径及目录,build options一般为-cef即已足够。这样,我们就把DDK驱动程序开发的checked(检查版本)、free(自由版本)与VC++的调试版本、发行版本联系在一起了。
7.添加源文件到工程
  可以新建,也可以添加,这和普通的win32开发一样。
8.添加资源文件
  选INSERT的RESOURCE菜单项即可。
9.把文件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
10.把文件Sources放入源程序目录,内容为
  TARGETNAME=RamDrive//这是要生成的驱动程序.sys文件的名字
  TARGETPATH=obj //.sys文件所在目录的上层目录,在WIN98下(由于ddk的bug)应手工在obj目录下创建checked和free目录,以作为.sys的最终存放目录,WIN2000下则不必。
  TARGETTYPE=DRIVER //驱动程序的类型,一般不变
  INCLUDES=$(BASEDIR)\inc //ddk包含文件路径,一般不变
SOURCES=RamDrive.cpp
RamDrive.rc //源文件(不要头文件),资源文件,注意,在SOURCES宏和它的等号之间必须没有空格。
  BROWSER_INFO = 1 //若想要生成浏览信息文件,则要有本行;否则可无
11.因为MakeDrvr.bat在DriverEnv目录,所以应把该目录添加到vc的Executable files里面, 最好把DDK的BIN目录也包含进去。
选tools的options菜单项,然后选directories页,在show directories for一栏选择Executable files,然后添加即可。
经过实践,事实证明以上修改是可行的,可以完成大部分驱动程序的编译,只有少数可能会找不到某些库文件,这时我们可以根据出错信息到DDK目录下找到该库文件,然后拷贝到缺这个文件的目录下,就可以完成了。
nuaawyd 2002-09-04
  • 打赏
  • 举报
回复
可以参考一下windowsNT设备驱动程序设计指南
作者:Art Baker and Jerry Loazno
机械工业出版社的
有点晦涩,不过只要你有windows sdk编程基础,看这个没什么问题
ftp://ftp.synet.edu.cn/pub1/Books/Document/
ftp://162.105.76.247/书籍/
ftp://ftp.tranlux.net.cn/Pub/Books/books/windowsnt设备驱动程序设计指南/


DDK文档是最根本的资料,就象msdn之于sdk。ddk里还提供了大量的
源代码,已经写好了各种设备的程序框架,而且非常详细。
另,有这类问题可上www.driverdevelop.com看看
lakelive 2002-09-04
  • 打赏
  • 举报
回复
嘿,怎么设置DDK环境.
野男孩 2002-09-04
  • 打赏
  • 举报
回复
我用VC编译DDK的例子总是出错,倒是编译VTOOLSD没问题,实在是很奇怪

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧