阅读:1121回复:3
简单问题
我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(); } 到底是怎么回事啊,搞不清楚 |
|
沙发#
发布于:2002-11-11 19:05
赫赫,一个地方搞错了,就是init中,我写得为:
VOID WdmUnload(IN PDRIVER_OBJECT DriverObject) { if( Buffer!=NULL) ExFreePool(Buffer); DebugPrintMsg(\"Wdm1Unload\"); DebugPrintClose(); } 应该和入口点的那个是对应的, 刚才没有注意,发铁字的时候发生笔误,不好意思 :D |
|
板凳#
发布于:2002-11-11 20:07
可能是因为你的WdmUnload函数定义的返回类型为void。返回类型为VOID的函数好象是不能赋给变量的吧?
|
|
|
地板#
发布于:2002-11-12 11:03
呵呵,我找到了,是在AddDevice那里把参数写错了
|
|