aqian88888888
驱动牛犊
驱动牛犊
  • 注册日期2002-05-31
  • 最后登录2004-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1524回复:4

帮我看看《Windows 2000设备驱动程序设计指南》中的问题

楼主#
更多 发布于:2002-06-06 15:33
向大侠们问好了!:)
我现在有一个任务,就是写一个并口的驱动程序。我的编程功底不是很厚,以前是主学硬件的,现在突然写驱动感觉很难很难!啃了一个星期的书《Windows 2000 设备驱动程序设计指南》,发觉有点眉目了!于是就想把书中的例子编译编译看看!真是不编译不知道,一编译那是错误多多,麻烦多多啊!现在就碰到如下一些问题:
1)编译选项怎么设置?我现在是用书中自带的例子,好像不用设置它就知道怎么编译了,如果我自己来设置的话,改怎么来设置?
2)我编译书中第6章的例子时,出现下列问题:
C:\\NTDDK\\INC\\DDK\\ntddk.h(371) : error C2146: syntax error : missing \';\' before identifier \'Lock\'
C:\\NTDDK\\INC\\DDK\\ntddk.h(371) : error C2501: \'PULONG_PTR\' : missing storage-class or type specifiers
C:\\NTDDK\\INC\\DDK\\ntddk.h(371) : error C2501: \'Lock\' : missing storage-class or type specifiers
C:\\NTDDK\\INC\\DDK\\ntddk.h(825) : error C2146: syntax error : missing \';\' before identifier \'KSPIN_LOCK\'
C:\\NTDDK\\INC\\DDK\\ntddk.h(825) : fatal error C1004: unexpected end of file found
Unicode.cpp
C:\\NTDDK\\INC\\DDK\\ntddk.h(371) : error C2146: syntax error : missing \';\' before identifier \'Lock\'
C:\\NTDDK\\INC\\DDK\\ntddk.h(371) : error C2501: \'PULONG_PTR\' : missing storage-class or type specifiers
C:\\NTDDK\\INC\\DDK\\ntddk.h(371) : error C2501: \'Lock\' : missing storage-class or type specifiers
C:\\NTDDK\\INC\\DDK\\ntddk.h(825) : error C2146: syntax error : missing \';\' before identifier \'KSPIN_LOCK\'
C:\\NTDDK\\INC\\DDK\\ntddk.h(825) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

他的意思就是ntddk.h那个文件中出现了一个未声明的数据类型\'PULONG_PTR\',后来我就在NTDDK(我安装的W2K DDK的根目录,现在还不知道怎么用,那儿有介绍?) ,我查找之后发现:
C:\\NTDDK\\INC\\basetsd.h(69):    typedef [public] unsigned __int3264 ULONG_PTR, *PULONG_PTR;
C:\\NTDDK\\INC\\basetsd.h(79):    typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
C:\\NTDDK\\INC\\basetsd.h(88):    typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;
后来我在ntddk.h文件中加上这样一句:
#include <basetsd.h>
还是不行,怎么办?指点指点!
shengws
驱动大牛
驱动大牛
  • 注册日期2002-03-08
  • 最后登录2010-06-21
  • 粉丝0
  • 关注0
  • 积分384分
  • 威望102点
  • 贡献值0点
  • 好评度37点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-06 16:25
这个问题及有可能是因为设置路径引发的错误,
你可以试一下将ntddk\\inc路径设成默认的。
喂,小孩,你的小JJ露出来了!
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-06 16:58
装一个SDK就好了。装好以后要注意要在Directory选项中将SDK的INCLUDE目录放在最前一项。
Tom_lyd
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-06 18:04
应该可以不用装SDK的。

“1)编译选项怎么设置?我现在是用书中自带的例子,好像不用设置它就知道怎么编译了,如果我自己来设置的话,改怎么来设置?”

我看还是你自己的编译方式的问题,你的这个例子是如何编译的?

可否搞之,“详细点”。









 :)
[color=red]大头鬼! :P[/color]
aqian88888888
驱动牛犊
驱动牛犊
  • 注册日期2002-05-31
  • 最后登录2004-05-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-07 07:58
谢谢,谢谢!
真是:听君一席话,胜读十年书!
非常感谢Tom_lyd和shengws两位仁兄的点拨!
也非常感谢magicw的关心!

我把C:\\NTDDK\\INC\\DDK和C:\\NTDDK\\INC这两个路径放到前面就搞定啦!太好了太好了!
还有个问题问一下:VC编译一个程序时,设置好的编译连接选项一般保存在那个文件里?

[编辑 -  6/7/02 by  aqian88888888]
游客

返回顶部