阅读:1252回复:4
为什么会在连接的时候出现错误
Linking...
LINK : error LNK2001: unresolved external symbol _DriverEntry@8 Hid.obj : error LNK2001: unresolved external symbol __imp__KeSetEvent Hidmini.obj : error LNK2001: unresolved external symbol __imp__KeSetEvent Hid.obj : error LNK2001: unresolved external symbol __imp__KeSetTimer Hid.obj : error LNK2001: unresolved external symbol __imp__KeReadStateTimer Hid.obj : error LNK2001: unresolved external symbol __imp__ExQueueWorkItem Hidmini.obj : error LNK2001: unresolved external symbol _HidRegisterMinidriver Hidmini.obj : error LNK2001: unresolved external symbol __imp__KeInitializeTimer Hidmini.obj : error LNK2001: unresolved external symbol __imp__KeInitializeDpc Hidmini.obj : error LNK2001: unresolved external symbol __imp__ExInitializeNPagedLookasideList Hidmini.obj : error LNK2001: unresolved external symbol __imp__KeInitializeEvent Pnp.obj : error LNK2001: unresolved external symbol __imp__PoCallDriver Pnp.obj : error LNK2001: unresolved external symbol __imp__PoStartNextPowerIrp Debug/mydriver.sys : fatal error LNK1120: 12 unresolved externals Error executing link.exe. mydriver.sys - 14 error(s), 0 warning(s) |
|
沙发#
发布于:2004-04-20 11:18
我告诉你,你要给我20分 ,呵呵,
这个问题我遇到过,我想你用的可能时CPP后缀的文件编译,MAKE使用CPP编译器,在用CPP编译器编译时连接头文件是按照CPP的格式,所以你在一些头文件前比如NTDDK.H WDM.H等。。。。前要加上这样两句话 #ifdef __cplusplus extern \"C\" { #endif #include <ntddk.h> #include <stdio.h> #include <devguid.h> #include <hidclass.h> #include <usbdi.h> #include <usbdlib.h> #ifdef __cplusplus } #endif |
|
|
板凳#
发布于:2004-04-20 20:39
我就照你的做的,怎么不行呢?
|
|
地板#
发布于:2004-04-21 08:24
我就照你的做的,怎么不行呢? 定义DriverEntry时,前面也要加 extern \"C\"。 |
|
|
地下室#
发布于:2004-04-21 09:26
以前写驱动的时候还是用C来写,驱动不是你卖弄C++技巧的地方.
|
|
|