terrace
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-12-04
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1854回复:5

急呀:怎么会出现undeclared identifier?

楼主#
更多 发布于:2004-08-03 19:55
我在win2k下用DriverWorks 开发一个小驱动程序,其中我调用了2000ddk中的库函数
MmGetPhysicalAddress( ),编译时却发现MmGetPhysicalAddress是一个"undeclared identifier"!我始终搞不明白到底是怎么回事,恳请各位大虾指点。
     我在“SetDDKGo"中已经设置好编译环境了,而且在VC下编译成功DS的库函数,就是不能使用Win2K DDK的库函数,这到底是怎么回事?是不是还要设置VC的头文件路径什么的?
    
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2004-08-03 20:27
#pragma comment(lib,"ntoskrnl.lib")
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
terrace
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-12-04
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-04 09:17
非常感谢楼上大虾的指导。我将您说的那句加在“XxxDevice.cpp”文件起始部分,但现在还是那样,说那个函数“undeclared identifier”,好像是哪里设置不对,就是不能使用ddk中的函数。哪位大虾以前遇到过这种问题,恳请指教!
    拜谢了!
zfw
zfw
驱动小牛
驱动小牛
  • 注册日期2001-12-16
  • 最后登录2006-09-01
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-08-04 12:08
#include "ntddk.h "
zfw
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-08-04 12:57
编译出错加#include "ntddk.h "
链接出错加#pragma comment(lib,"ntoskrnl.lib")

要使用MmGetPhysicalAddress这两个都要加
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
terrace
驱动牛犊
驱动牛犊
  • 注册日期2004-02-11
  • 最后登录2005-12-04
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望3点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-04 14:44
将以上两句加在“XxxDevice.cpp”文件起始部分。还是没搞定,真急死人!我把我整个开发环境建立过程说说,请大虾看看有没有漏洞:
1. 安装VC6.0
2. 安装Win2K DDK,安装完后运行Checked Build Enviroment。
3. 安装DriverStudio3.1。安装完后,运行DDK Setting Buildings(SetDDKGo),设置
   BASEDIR(其它设置采用默认设置)。
4. 编译DriverWorks库函数。在VC6 IDE中打开vdwlibs.dsw,然后运行batch building。编译成功。
5.新建一个DriverWorks Project,写好驱动后,编译。驱动中要用的DDK中的函数,但编译时却出错。

    以上设置中没说明的都没做。是不是哪有漏的?

    我又发现更奇怪的,好像DDK中其他的函数都能使用,但就是不能使用MmGetPhysicalAddress不能用,而其它如MmGetMdlByteCount等都能用!怪怪!真愁人!

   真心感谢楼上各大虾的指教,先给分再说!谁帮我解决这个问题,给多少都行!




[编辑 -  8/4/04 by  terrace]
游客

返回顶部