我刚学的驱动开发,还没怎么如入门。主要是开发环境麻烦;我用的是VS2003 + DDK--我用惯了SDK,对开发框架比较不感冒。
自己简单配置了VS的环境(我用VS几乎已经半年了,可还是不怎么熟悉- -),而且可以编译没用到多少API的简单的代码;本来
以为可以工作了,谁知当我增加API调用的时候链接老通不过,比如有这样的错误提示:
“error LNK2001: 无法解析的外部符号 "struct _KSYSTEM_TIME volatile KeTickCount" (?KeTickCount@@3U_KSYSTEM_TIME@@C)”
我不明白的是,在同样的环境下,为何别的API(如“IoCompleteRequest()”)可以用,而有些API(比如上面提的那个
输出变量"KeTickCount")又不能用?我链接时包含了" ntdll.lib int64.lib ntoskrnl.lib hal.lib "库。搞不灵清
的是难道他们并非全在这些库中?DDK只是说明了他们的原型,却并不想SDK那样同时指明输出库;上面那些库由于我没有
经验而一概添加的(可是变量“KeTickCount”明明就是在"ntoskrnl.exe"中输出的吧,为什么我包含了它的输出库却链接
不上??),不知道问题到底出在哪里了,恳请大家指教!
还有,对于不熟悉的API,我怎么才能知道它实现于哪个库呢?
(我网上搜了一大堆关于驱动开发环境的设置,可都是用的DriverStudio 等,这些当然好,可是我就向知道手工设置环境
该怎么弄,不然,我还是看不懂它们,更别说用"build"命令了)
友情链接:
http://blog.csdn.net/Mobidogs/archive/2007/01/23/1491664.aspx
http://blog.chinaunix.net/u/28781/showart_384840.html