原文地址
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
|