首页
社区
课程
招聘
vc集成开发环境编译HelloDDK的问题
发表于: 2008-9-23 10:16 15157

vc集成开发环境编译HelloDDK的问题

2008-9-23 10:16
15157
最近开始学习驱动开发,买了本<Windows驱动开发技术详解>,看了上面介绍的使用VC编译驱动程序的方法,却发现自己试不来,不知症结何在,现把书中第一章 1.3.2中介绍的步骤列出请高手指点下卡壳之处。
1。用vc新建一个工程。

   在"project"选项卡中,选择win32 Application,选择一个空的工程。

2。将两个源文件Driver.h和Driver.cpp拷贝到工程目录中,并添加到工程中。

3。增加新的编译版本,去掉Debug 和Release 版本。(这一步不知如何操作,哪位能够手把手的说一下?(15楼已经回复了))

4。修改工程属性。选择"Project|Setting",或者直接按下Alt+F7键,弹出"Project Settings"。在对话框中,选择“General”选项卡。将Intermediate files和Output files改为MyDriver_Check.

    选择C/C++选项卡,将原有的Project Options 内容全部删除替换成如下内容:
    /nologo /Gz /MLd /W3 /WX /Z7 /Od /D WIN32=100 /D _X86_=1 /D
     WINVER=0X500 /D DBG=1 /Fo"MyDriver_Check/" /Fd"MyDriver_Check/" /FD /c

   选择Link选项卡,将原有的Project Options 内容全部删除,替换成如下内容:
    ntoskrnl.lib /nologo /base:"10000" /stack:0x400000,0x1000 /entry:"DriverEntry" /subsystem:console /incremental:no /pdb:"MyDriver_Check/HelloDDK.pdb" /debug /machine:I386/nodefaultlib /out:"MyDriver_Check/HelloDDk.sys" /pdbtype:sept  /subsystem:native /driver /SECTION:INIT,D /RELEASE /IGNORE:4078

5。修改VC的lib目录和include目录。
在vc中选择"Tools"|"Options",在弹出的对话框中选择“Directories”选项卡。在“Show directories for”下拉菜单中选择“Include files”菜单,添加“D:\WINDDK\2600.1106\INC\W2K”和“D:\WINDDK\2600.1106\INC\DDK\W2K”并将这两个目录置于最上。读者可将“D:\WINDDK\2600.1106”替换成自己的DDK安装目录。
新增修改:在这一步,我在虚拟机windows 2000中的设置路径为C:\NTDDK\INC和C:\NTDDK\INC\DDK.

在"Show directories for "下拉菜单中选择“Library files”菜单,添加目录“D:\WINDDK\2600.1106\LIB\W2K\I386”并置于最上端。
新增修改:在这一步,我在虚拟机windows 2000中的设置路径为C:\NTDDK\LIB\I386并置于最上端.

6。编译。
按下F7键。
新增修改:在虚拟机win2K中出错,LINK : fatal error LNK1181: cannot open input file "ntoskrnl.lib".没关系,到另一台装了 DDK 2k3 机子上去把\WINDDK\  3790.1830\lib\win2k\i386目录中的相应文件拷贝到C:\NTDDK\LIB\I386目录下就行了.现在再次按下F7,OK,编译通过.

最后要对各位回帖的朋友表示感谢,尤其是kondo的指点,谢之! 2008.10.28日修改.
另外本人建了一个QQ群主要是交流驱动学习,群号67181435.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (24)
雪    币: 29
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
同样关注。赫赫。设置得好详细复杂。
2008-9-23 10:50
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我在用这个方法编译时VC报错:
--------------------Configuration: DriverDev - Win32 Win32 DriverCheck Edition--------------------
Compiling...
Driver.cpp
C:\WINDDK\3790.1830\INC\W2K\ntdef.h(71) : fatal error C1083: Cannot open include file: 'specstrings.h': No such file or directory
执行 cl.exe 时出错.

HelloDDk.sys - 1 error(s), 0 warning(s)
2008-9-23 11:16
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
现在哪里还能下到W2K的DDK?
2008-9-23 11:20
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
5
DDK用2003 SP1
环境配置用EasySYS.3.1.1
EasySYS
------------------------------
安装完DDK后,只需设置下WNETBASE路径,然后用EasySYS轻松生成SYS了...
多搜索下论坛就知道了.
2008-9-23 11:28
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不喜欢用那种第四方的东西,还是VC好,现在2000的DDK真是一票难求啊
2008-9-23 11:52
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
求win2k DDK,求购。 
2008-9-23 22:45
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谁有的话联系QQ:190350064 
2008-9-23 22:47
0
雪    币: 107
活跃值: (1623)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
9
我开始也是用VC弄 后来半天没弄好。最后直接弄了两个环境变量 用DDK带的check build 就OK了,搭建教程看雪好象有好几篇。
2008-9-23 23:20
0
雪    币: 197
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
2k ddk 网上到处是
2k DDK 下载
其他的DDK,估计你上verycd也能找到
2008-9-24 09:25
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
[QUOTE=demonking;512522]2k ddk 网上到处是
2k DDK 下载
其他的DDK,估计你上verycd也能找到[/QUOTE]

你说的这个好像不好用的,那是winme的。
2008-9-24 09:43
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
每天顶一下,直到求到
2008-9-25 22:43
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
2008.9.26到此一顶 。
2008-9-26 21:08
0
雪    币: 5028
活跃值: (3429)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
14
你直接在WinDDK目录下搜到后,包含该文件所在的路径就可以了。
2008-10-6 16:54
0
雪    币: 256
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
3。增加新的编译版本,去掉Debug 和Release 版本。(这一步不知如何操作,哪位能够手把手的说一下?)
===========================================================
Build菜单里选Configurations, 再选中Win32 Debug,然后单击Add按钮,会弹出一个对话框。对话框里设定好以后点OK。最后把Win23 Debug 和Win32 Release 都删掉(其实不删也可以)。
做这些动作的意义,是先把 Win32 Debug 的编译选项和连接选项等等都复制到你这个新建的DDK编译环境中。
然后,你就可以按照书上讲的手动地把这些选项做些变动。
2008-10-9 09:18
0
雪    币: 256
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
specstrings.h的问题,我以前也遇到过。我搜了一下,发现这个文件是在我的\WINDDK\3790.1830\INC\CRT目录里。 我就按照你说的第5步把这个路径加进去,再编译运行,就OK了。
2008-10-9 09:21
0
雪    币: 281
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
http://www.2ccc.com/article.asp?articleid=2849

delphi 盒子 里面有下载的 才60多M  
2008-10-9 11:28
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
非常感谢!用类似的方法搞定了.
2008-10-28 11:29
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
没什么事,随便顶顶.
2008-11-4 19:01
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
顶一顶。34243
2008-12-14 14:22
0
雪    币: 347
活跃值: (25)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
21
难道2003的DDK生成的驱动在2K上不兼容吗?!
2008-12-14 16:00
0
雪    币: 220
活跃值: (701)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
DDK用2003 SP1
环境配置用EasySYS.3.1.1
EasySYS
------------------------------
安装完DDK后,只需设置下WNETBASE路径,然后用EasySYS轻松生成SYS了...
多搜索下论坛就知道了.

用EasySYS
生成的工程里,设置选项里少了很多东西,请问怎么生成MAP文件呢?
2008-12-20 22:42
0
雪    币: 187
活跃值: (119)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
为什么不贴图呢。如果使用VS2008,可以很方便的设置。嘻嘻
2008-12-21 13:24
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
学习了 呵呵
2008-12-22 00:10
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
误打误撞居然解决了,书上说的Library Files 里加载的是D:\WINDDK\2600.1106\LIB\W2K\I386 ,但是看了下目录,我的WIN 2K DDK 目录中间没有W2K 这个目录,并且在LIB\I386里面没有任何LIB 文件,搜索下整个DDK 目录,发现libchk\i386 和另外几个目录下面有 ntoskrnl.lib 这个LIB 文件,于是把Library Files 里的路径改成   DDK安装目录\libchk\i386   结果链接成功,然后用DriverMonitor 加载.SYS也成功了,以后如果有朋友遇见这个问题看这个方法能不能解决。
2009-6-14 21:10
0
游客
登录 | 注册 方可回帖
返回
//