天天看点

在Visual Studio 2005里编译驱动程序

原文地址 http://blogold.chinaunix.net/u/25096/showart_480854.html

去 http://ddkwizard.assarbad.net/  下载ddkwizard   1. 拷贝 DDKBUILD.bat 和 DDKBUILD.cmd 到DDK安装根目录,如我的是F:\WinDDK.

2. 将上述文件的路径添加到系统的path变量(右击我的电脑,系统属性中,最好是System的path变量),路径用分号分隔

3. 启动VS2005,打开Tools->Options,选择Projects and Solutions->VC++ Directories,在Show directories for Executable files中添加上面DDKBuild.bat文件所在的路径(这里是F:\WinDDK)

4. 根据你所安装的DDK的不同版本添加不同的变量到系统中:

   同第二步一样,在我的电脑的属性中添加,

   2000 DDK: W2KBASE

   XP DDK: WXPBASE

   2003 sp1 DDK: WNETBASE,中的一个.

   这里我的是WNETBASE(值为F:\WinDDK\3790.1830)

5. 开始安装DDKWizard,在安装的最后一步你可以选择编辑ddkwizard的配置文件.

final,好了,现在你就可以启动VS2005,用它来编译驱动了,咔咔(如果编译时出现不能spawing cmd.exe错误,那就是你把上述的变量添加到了你自己的帐户环境下了)

(注:在安装成功后,在新建项目中有个ddk project选项,可以新建driver项目)   配置生产的语句

在Visual Studio 2005里编译驱动程序
在新建项目时的配置选项
在Visual Studio 2005里编译驱动程序

 原文地址 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 [email protected] referenced in function [email protected]

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)

{                  }

}//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

继续阅读