[转]VC的DDK编译环境构建

http://blog.csdn.net/skdev/article/details/1336935

1 环境状况

Windows XP SP1 NTDDK(win2kddk) VC++6.0

NTDDK所在路径:D:/NTDDK

DDK 编译所需的文件:SetEnvCallBuild.bat BuildDriver.bat makefile makefile.mk source

SetEnvCallBuild.bat 是命令行(msdos)执行文件,参数:checked WXP或free WXP 两种

BuildDriver.bat是SetEnvCallBuild.bat调用的文件。

Makefile makefile.mk source 是build –cZ 用到的文件;makefile和makefile.mk不用修改,souce包含要编译的文件,用记事本编辑。

以下用NTDDK/src/wdm/usb/usbview为例

2 各文件的代码

文件名 SetEnvCallBuild.bat

//-----------------------------------

@echo on

REM %1

REM %2

set DDKPATH=D:/NTDDK

set PRJDRV=E:

set PRJPATH=driver

echo s1 %1

echo s2 %2

call BuildDriver.bat %DDKPATH% %PRJDRV% %PRJPATH% %1 %2

set DDKPATH=

set PRJDRV=

set PRJPATH=

----------------------------------------//

注:DDKPATH=D:/NTDDK为NTDDK安装的路径,PRJDRV=E E表示要编译文件所在盘符即E盘,PRJPATH=driver driver表示要编译文件所在的文件夹。

文件名 BuildDriver.bat

//------------------------------------

@echo off

REM %1

REM %2

REM %3

REM %4

REM %5

echo n1 %1

echo n2 %2

echo n3 %3

echo n4 %4

echo n5 %5

if %1=="" goto usage

if %3=="" goto usage

if not exist %1/bin/setenv.bat goto usage

call %1/bin/setenv.bat %1 %4 %5

%2

cd %3

build –cZ

goto exit

:usage

echo usage   Make sure your DDK path is valid!

:exit

---------------------------------------------//

文件名 makefile

//--------------------------------------------

#############################################################################

#

#   Copyright (C) Microsoft Corporation 1992-1997

#   All Rights Reserved.

#

#   makefile for USBVIEW

#

#############################################################################

# Paths are relative to the directory containing this file.

!IFDEF WIN95_BUILD

# Root of the SLM tree (i.e. the directory containing the DEV project).

!IFNDEF ROOT

ROOT = ../../../..

!ENDIF

DEFAULTVERDIR   = retail

VERSIONLIST     = retail debug

IS_32           = TRUE

COMMONMKFILE    = makefile.mk

!include $(ROOT)/DEV/MASTER.MK

!ELSE

!include $(NTMAKEENV)/makefile.def

!ENDIF

--------------------------------------//

文件名 makefile.mk

//-----------------------------------------

#############################################################################

#

#   Copyright (C) Microsoft Corporation 1996-1998

#   All Rights Reserved.

#

#   makefile.mk for USBVIEW

#

#############################################################################

ROOT            = ../../../../..

NAME            = USBVIEW

SRCDIR          = ..

IS_32           = TRUE

WANT_C1132      = TRUE

WANT_WDMDDK     = TRUE

IS_DDK          = TRUE

L32EXE          = $(NAME).exe

L32RES          = ./$(NAME).res

L32LIBSNODEP    = kernel32.lib user32.lib gdi32.lib comctl32.lib libc.lib cfgmgr32.lib

TARGETS         = $(L32EXE)

DEPENDNAME      = $(SRCDIR)/depend.mk

RCFLAGS         = -I$(ROOT)/DEV/INC

# Enable read-only string pooling to coalesce all the redundant strings

#

CFLAGS          = -GF

L32OBJS         =   usbview.obj /

enum.obj    /

display.obj /

debug.obj   /

devnode.obj /

dispaud.obj

!INCLUDE $(ROOT)/DEV/MASTER.MK

----------------------------------------//

文件名 source

//--------------------------------------------

TARGETNAME=usbview

TARGETTYPE=PROGRAM

TARGETPATH=obj

UMTYPE=windows

UMENTRY=winmain

UMBASE=0x1000000

TARGETLIBS=/

$(SDK_LIB_PATH)/kernel32.lib    /

$(SDK_LIB_PATH)/user32.lib      /

$(SDK_LIB_PATH)/gdi32.lib       /

$(SDK_LIB_PATH)/comctl32.lib    /

$(SDK_LIB_PATH)/cfgmgr32.lib

INCLUDES=../inc;../../inc

SOURCES=usbview.c   /

display.c   /

enum.c      /

debug.c     /

devnode.c   /

dispaud.c   /

usbview.rc

-------------------------------------------//

SOURCES 所列的文件为需编译的。

3 创建工程

1)     新建工程

选择makefile

2)     在Debug中创建check版的驱动

注:WXP 为Windows XP

3)     在Release中创建free版驱动

4)     导入文件

5)     编译工程

6)     生成结果

生成objchk/i386中的usbview.exe

说白了原理与在dos编译一样

如下为dos编译方法

setenv即为setenv.bat 其参数为ntddk所在路径

表示环境创建成功

然后到要编译的目录下运行build –cZ 注意:该目录下必需的makefile makefile.mk source文件

运行结果

完成。

参考:啊良的”使用VC6编译Driver”

时间: 2024-10-13 18:59:34

[转]VC的DDK编译环境构建的相关文章

Ubuntu编译环境构建(ssh)

# Jason Gao # [email protected] # Now in Xidian University 1 基础构建 sudo apt-get install subversion git-core git-svn sudo apt-get install make gcc g++ libX11-dev libXt-dev libgl1-mesa-dev libosmesa6-dev libglu1-mesa-dev libfontconfig-dev libxrender-dev

构建一个docker 的java编译环境

用Dockerfile 构建一个java的编译环境 1.包括以下软件包 ubuntu jdk maven svn 2.jdk.maven 需要手动下载,下载之后分别为 jdk-8u51-linux-x64.gz apache-maven-3.3.3-bin.tar.gz 3.创建一个Dockerfile文件,包含以下内容 FROM ubuntu RUN apt-get update RUN apt-get -y install subversion ADD jdk-8u51-linux-x64.

jenkins+gitlab构建安卓自动编译环境

因工作关系接触到接触到安卓自动编译环境,网上的资料都推荐了jenkins,因为第一次接触安卓和jenkins,踩了不少的坑,有总结才有进步. gitlab环境之前已经安装完成可用,具体步骤另外详解吧.本例目标是在gitlab可用前提下,通过jenkins将git仓库的代码自行编译打包,生成可用的apk安装文件. 一.相关环境 1 Linux Centos6.3 2.6.32-279.el6.x86_64 各相关软件版本 1     JDK 1.8.0    Gradle 2.13    SDK 

用Sublime Text2搭建VC编译环境

用惯了臃肿的VS2013,有时候想写个小项目,小测试程序,编辑浏览代码什么的不想 总打开它,于是我折腾了一下Sublime Text2 这款现代化高大上的强大代码编辑器,它的定位 在于绿色轻巧,速度快,且跨平台支持Win/Mac/Linux,支持32与64位,但它需要配合众多 的插件一起使用,所以比较适合喜欢折腾的人. 另外,Sublime Text2 通常用于前端开发,例如HTML,PHP神马的,亦或者是写些脚本神马的, 像Lua, Js之类的,但估计用它来写VC的还真不多,毕竟有VS这等便利

Sublime Text 3 配置c/c++编译环境(转)

sublime text 3提供了构建功能,它的构建系统(Build systems)可以运行一段外部命令,还可以捕获输出并显示. 要在sublime text 3中实现c或c++代码的编译和运行,在本质上说也是调用外部的命令,windows中也可以理解为执行一段cmd命令. 目前c/c++编译器最流行的就是gcc和g++,本文将从MinGW开始,介绍gcc和g++的基本命令格式,然后详细介绍sublime中自带的编译配置文件,分析每一行的作用.然后给出win7 64bit下 Sublime T

Idea下Kafka源码阅读编译环境搭建

Kafka源码编译阅读环境搭建 开发环境: Oracle Java 1.7.0_25 + Idea + Scala 2.10.5 +Gradle 2.1 + Kafka 0.9.0.1 一.Gradle安装配置 Kafka代码自0.8.x之后就使用Gradle来进行编译和构建了,因此首先需要安装Gradle.Gradle集成并吸收了Maven主要优点的同时还克服了Maven自身的一些局限性--你可以访问https://www.gradle.org/downloads/ 下载最新的Gradle版本

对VC++6.0编译软件的评价

首先这个软件伴随着我们很长时间了,它是我们一上大学最先接触的,也是应用相当多的一个软件,其实在最初的时候,我对编译软件的理解非常有限,觉得它能实现一个代码的功能十分神奇的一件事情,虽然彼时我们写的代码都非常简单,但是敲击在键盘上之后,编译时还是出现了大量的问题. 尽管VC++6.0有很多的问题,比如说错误指示方位不对,有很多库函数都没有,界面形式非常单一,不能显示动态界面,不如我们后来接触的软件有那么多功能或者是那么智能化.简单说就是这个软件的学习跟实际工作要求是很有距离的,但它的确很经典,对于

MAVEN初级应用之分环境构建

Chapter one . Article Purpose 前段时间总结了maven一些知识点,都是概念性和理解性的描述,对于应用方面乏陈可言. 这里分享下我在日常项目开发中普通项目简单的分环境打包.:) 这样的文章很多,但是在这里出现的才是我最喜欢的. Chapter two . Build in Pom.xml MAVEN应用的最佳实践可以说就是配置pom.xml文件的过程. 这里当然要简单分析下pom.xml文件的构建过程. 首先一个普通的项目,应该包含对成熟中间件的依赖和第三方jar包的

Windows下QT4.8.4编译环境的搭建(转载http://blog.csdn.net/bestgonghuibin/article/details/38933141)

开始使用QT了,所以第一步就是把环境搭起来,这里小记一下,以免以后忘记. 1. 下载安装文件 要使用QT功能,那么必须要下载QT的源码,还必须要一个是用QT的编译环境,可以是VS2010,也可以是专用于QT编程的QT Creator.本人选择QT Creator,所以也必须要下载QT Creator. 根据网上大部分教程及自己买的书籍获取的信息,在选择版本的时候,QT 源码选择4.8.4,而QT Creator选择2.8.0(QT5.0以后许多原有的文件路径改变). 选择好版本之后,可以上QT的