violet_jj
驱动小牛
驱动小牛
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1121回复:3

简单问题

楼主#
更多 发布于:2002-11-11 19:02
我build的时候,显示这个错误,就这一个错误:
error C2440: \'=\' : cannot convert from \'long (__stdcall *)(struct _DEVICE_OBJECT *,struct _IRP *)\' to \'long (__stdcall *)(struct _DRIVER_OBJECT *,struct _DEVICE_OBJECT *)\'
我找到发生错误的代码:是init.cpp中
DriverObject->DriverUnload = WdmUnload;
我看了几遍,没有发现那里有错误。
相关的几个地方是:
在wdmtest.h中
VOID WdmUnload(IN PDRIVER_OBJECT DriverObject)
在init.cpp中
VOID Wdm1Unload(IN PDRIVER_OBJECT DriverObject)
{
if( Buffer!=NULL)
ExFreePool(Buffer);

DebugPrintMsg(\"Wdm1Unload\");
DebugPrintClose();
}
到底是怎么回事啊,搞不清楚
violet_jj
驱动小牛
驱动小牛
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-11 19:05
赫赫,一个地方搞错了,就是init中,我写得为:
VOID WdmUnload(IN PDRIVER_OBJECT DriverObject)
{
if( Buffer!=NULL)
ExFreePool(Buffer);

DebugPrintMsg(\"Wdm1Unload\");
DebugPrintClose();
}
应该和入口点的那个是对应的,
刚才没有注意,发铁字的时候发生笔误,不好意思 :D
shyeagle
驱动老牛
驱动老牛
  • 注册日期2002-04-30
  • 最后登录2007-07-31
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-11 20:07
可能是因为你的WdmUnload函数定义的返回类型为void。返回类型为VOID的函数好象是不能赋给变量的吧?
[url=http://www.01study.com]01空间网[/url] [url=http://www.01study.com/forum/dispbbs.asp?boardID=73&ID=193&skin=0]版主招募[/url] [img]http://shy2003.vip.sina.com/map/yjs.gif[/img]
violet_jj
驱动小牛
驱动小牛
  • 注册日期2002-11-07
  • 最后登录2003-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-12 11:03
呵呵,我找到了,是在AddDevice那里把参数写错了
游客

返回顶部