原文地址
http://blog.703804.com
VS2005集成DDKWizard遇到的问题
————————————————————————————
▲建立EmptyDriver时,
要在sources文件的第4行TARGETTYPE=后面加DRIVER
加入[源文件]后还要在sources文件里的SOURCES=后面加上[源文件名]。比如:
SOURCES=DriverDemo.cpp \
DriverDemo.h
▲Cannot open include file: \'NTDDK.h\': No such file or directory 解决方案:VS2005/工具/选项/VC++目录/,
[显示以下内容的目录]为[包含文件],把DDK包含文件加进目录——
[D:\WINDDK\3790.1830\inc\ddk\wnet]和[D:\WINDDK\3790.1830\inc\wnet]。
[显示以下内容的目录]为[库文件],把DDK库文件加进目录——
[D:\WINDDK\3790.1830\LIB\WNET\I386]
以上DDK的路径要放到最先。
参考自:http://blog.csdn.net/jamesandy/archive/2008/03/17/2192267.aspx
结果:
▲编译提示错误:
BufferOverflowK.lib(gs_support.obj) : error LNK2019: unresolved external symbol
_DriverEntry@8 referenced in function _GsDriverEntry@8
objchk_w2K_x86\i386\Helloworld.sys : fatal error LNK1120: 1 unresolved externals 解决方案: 把[入口函数DriverEntry]前加上extern "C":
extern "C"{
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICODE_STRING pRegistryString)
{ /*DriverEntry函数内容*/ }
}//extern "C" 结果:OK。编译通过
直接用DDK的命令行工具编译>>>>>>>>>>>>>>>>>>>>>>>>>
————————————————————————————
1,D:\WINDDK下建立工程目录:D:\WINDDK\uu
2,D:\WINDDK\uu下文件清单:
DriverDemo.cpp
makefile 代码:
#
# DO NOT EDIT THIS FILE!!! Edit .sources. if you want to add a new source
# file to this component. This file merely indirects to the real make file
# that is shared by all the driver components of the Windows NT DDK
#
!INCLUDE $(NTMAKEENV)makefile.def
sources 代码:
TARGETNAME=DriverDemo
TARGETTYPE=DRIVER
DRIVERTYPE=WDM
TARGETPATH=OBJ
INCLUDES=$(DDKROOT)incddkwnet;
$(DDKROOT)incwnet;
SOURCES=DriverDemo.cpp
打开:开始/程序/……/Windows Server 2003 Checked x86 Build Environment 输入如下:
D:\WINDDK\3790~1.183>cd ..//uu
D:\WINDDK\uu>build
原文件地址:http://blog.csdn.net/xiaou_is_me/archive/2008/05/13/2441117.aspx
|