我目前用的是VC++6.0含SP6中文版+英文版.VC6SP6.ISO (485 MB)
Windows 2003 DDK.iso(230 MB) 其实别的版本DDK也可以的,我们要的是一些结构&头文件用来编译 知道名字后可以xunlei下

把上面的安装好后Tools->Options->Directories

Include files:
D:\SOFTWARE\WINDDK\3790.1830\INC\DDK\W2K
D:\SOFTWARE\WINDDK\3790.1830\INC\CRT
D:\SOFTWARE\WINDDK\3790.1830\INC\WXP

Library files:
D:\SOFTWARE\WINDDK\3790.1830\LIB\WXP\I386

这些文件是DDK按装的路径下。你们相应调整

DriverWizard.rar(windowst程序设计中的DDK编译器-王艳平)
把上面的解压后得到DriverWizard.awx文件放到VC按装目录下
D:\software\vc6\MSDev98\Template


重启VC新建就会看到


在右边输入工程名DDK 单击OK
自动创建了一个CPP文件自动生成以下内容:
//
// DDK.cpp文件
extern "C"
{
   #include <ntddk.h>
}

// 驱动程序加载时调用DriverEntry例程
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICODE_STRING pRegistryString)
{

// 请视情况返回DriverEntry例程执行结果
 return STATUS_DEVICE_CONFIGURATION_ERROR;
}

单击DDK.cpp然后delete键删除

project->add to project->files
重命名DDK.CPP改为DDK.C单击OK
把里面的内容改成:
//
// DDK.c文件
#include <ntddk.h>

// 驱动程序加载时调用DriverEntry例程
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICODE_STRING pRegistryString)
{

// 请视情况返回DriverEntry例程执行结果
 return STATUS_DEVICE_CONFIGURATION_ERROR;
}

这个编译内核环境就建好了。你可以像R3开发一样编译了,在工程目录下就会生成ddk.sys文件

WDK(7600.16385.1) + VC6 驱动开发环境配置(转http://blog.csdn.net/jifengszf/article/details/5959245

2011-09-16 23:17

(这篇文章貌似被转过n次,也被改过多次,所以这里特意给出一个它的出生地http://dengkeng.blogbus.com/logs/33757789.html)

VC6只是一个IDE,可以方便的调用编译器,链接器,头文件,库文件,如果编辑和编译驱动能集成在一起,这样可以提高开发效率。对于普通的Win32应用程序,VC6已经默认支持了,而对于驱动程序没有设定好的工程向导。其实驱动程序也就是一个sys,是通过c语言写成,所以编译它理论上没有问题,只是在实际操作上有点麻烦。下面就来说明一下各种平台编译sys驱动的方法(包括64位平台)

先看32位版本驱动的编译方法(这里假设我们的DDK装在C:/WINDDK/7600.16385.1目录):

(1)第一步:

打开VC建立一个Win32 Application工程,然后选择An empty Project。

(2)第二步:

随便找一个驱动程序,主要是.C,.h及rc资源文件,加入第一步建立的工程

(3)第三步:

设置VC编译驱动的环境,这才是重点。

打开VC的Tool->Options->Directories里设置Include,Lib,及Exectuable File。

设置Include路径:

C:/WINDDK/7600.16385.1/INC

C:/WinDDK/7600.16385.1/INC/wdf

C:/WinDDK/7600.16385.1/INC/wdf/kmdf/1.9

C:/WINDDK/7600.16385.1/INC/CRT

C:/WINDDK/7600.16385.1/INC/DDK

C:/WINDDK/7600.16385.1/INC/API   (这里可能有些不需要,也可能少了,根据自己的情况在INC目录下继续添加就OK了)

设置LIB路径:

C:/WINDDK/7600.16385.1/LIB

C:/WINDDK/7600.16385.1/LIB/WDF/KMDF/I386/1.9

C:/WINDDK/7600.16385.1/LIB/CRT/I386

C:/WINDDK/7600.16385.1//LIB/WNET/I386

设置Executable Files:

C:/WINDDK/7600.16385.1/BIN/X86/X86

(这里要注意,一定要在bin/x86目录下,确切的找到Cl.exe文件,然后添加它所在的目录,DDK与WDK这个文件所在的路径并不是一样的,上面的是我所安装的WDK中cl.exe所在的路径,这里要根据不同情况选择正确的路径)

(4)第四步:

这里要设置工程的属性:

打开VC->Project菜单,找到C/C++选项卡,在Preprocesser definitions里输入如下字符串:

Release下输入:

_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG

Debug下输入:

_X86_=1,i386=1,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG

在Code Generation里的Calling convention用_STDCALL

Debug版有个特殊编译选项 /GZ (注意是大写的,小写的不要删!) 删掉,否则有链接错误,chkesp链接 不上什么的。

(5)第五步:

设置link选项卡,将输出文件名改为sys扩展名,

在General的Objcet/Library modules,填写驱动调用的几个lib:

Kernel32.lib ntoskrnl.lib hal.lib usbd.lib wmilib.lib wdfdriverentry.lib  wdfldr.lib

然后进入Output在Entry-point symbol:填DriverEntry

下面就是往Project Options手动增加一些链接选项,复制如下进去:

/machine:IX86 /driver /subsystem:native /SECTION:INIT,d /IGNORE:4198,4010,4037,4039,4065,4070,4078,4087,4089,4221

删除如下选项:

/subsystem:windows

/machine代表目标机器类型,/driver代表驱动,/subsystem:native 也是代表驱动。

(这里,我在配置的时候,只是将/subsystem:windows改为:/subsystem:native没有再进行其它设置,也可成功生成驱动文件,至于有没有问题,暂时不知道)

那么如果我们要编译64位驱动呢? 这里大家注意一下,64位有两种,一个是AMD64,一个是IA64,要选定你的目标平台,目前AMD64平台最为流行.

其实编译成64位也很简单,只要把32位的配置稍微改一下就行了,我们以编译AMD64位驱动为例(你会复制VC的工程 Configurations吧,把32位的Relase,Debug各复制一份改名为ReleaseAMD64和DebugAMD64,然后在复制品的 基础上修改):

1.要修改两个lib路径:

C:/2003DDK/LIB/CRT/I386改为:C:/2003DDK/LIB/CRT/amd64

C:/2003DDK/LIB/WNET/I386 改为:C:/2003DDK/lib/wnet/amd64

2.修改编译器路径:

C:/2003DDK/BIN/X86

改为:

C:/2003DDK/bin/win64/x86/amd64

C:/2003DDK/BIN/X86 //这句也要存在

3.修改C/C++里的Preprocesser definitions为:

ReleaseAMD64下输入:

_AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,NDEBUG

DebugAMD64下输入:

_AMD64_,AMD64,STD_CALL,WIN32=100,_WIN32_WINNT=0x0501,WINVER=0x0501,_DEBUG

4.需要修改link页里的Project Options,手动改一下:将/machine:IX86改为:/machine:amd64

5.理论上到这里设置就OK了,不过还是有一个链接错误unresolved external symbol __security_cookie ,只要在链接的lib里加入bufferoverflowK.lib (为什么是bufferoverflowK.lib?看这里:http://support.microsoft.com/kb/894573 ) 就可以了。

以上的设置大部分都可以保存在VC工程文件(*.dsp)里,除了设置的include路径,lib路径和编译器路径,这些路径是全局的.

所以,你在创建一个新工程时,就不用再设置目录了,但工程的属性,还需要设置, 这个时候可以用比较工具(比如WinDiff),把.dsp文件和以前创建工程的.dsp文件比较,把改动之间复制过去即可, 不用再一项一项重新设置了。

转载于:https://www.cnblogs.com/xiaojinma/archive/2012/12/07/2806685.html

VC++6.0 DDK 环境配置相关推荐

  1. OpenCV4.4.0+VS2017 环境配置

    OpenCV4.4.0+VS2017 环境配置 1.准备工具 1.OpenCV4.4安装包,下载地址:opencv-4.4.0-vc14_vc15.exe(下载速度可能会很慢!) 2.VS2017, ...

  2. vs2019使用openssl3.0的环境配置并进行DES加解密

    vs2019使用openssl3.0的环境配置并进行DES加/解密 1.环境配置 (1)在电脑上安装好vs2019,openssl3.0 (2)打开vs2019按一下步骤进行配置 右击项目--属性-- ...

  3. QT5.10.0安装教程图文教程以及安装成功QT5.10.0后环境配置图文步骤

    引用:https://www.cnblogs.com/chenmingjun/p/8392713.html QT5.10.0安装教程图文教程以及安装成功QT5.10.0后环境配置图文教程 文章目录 Q ...

  4. ambari 2.6.0.0开发环境配置

    ambari 2.6.0.0开发环境配置 安装git 安装依赖 yum -y install curl-devel expat-devel gettext-devel openssl-devel zl ...

  5. Ubuntu18.04安装OpenCV4.3.0和环境配置(支持编译CUDA并安装配置python-opencv)

    Ubuntu18.04安装OpenCV4.3.0和环境配置 下载源文件 安装依赖 编译安装 环境配置 动态库配置 配置OpenCV的`PKG-CONFIG`环境 Python-OpenCV环境[如果安 ...

  6. VC++ 6.0下OpengGL配置以及glut配置

    转自:http://blog.sina.com.cn/s/blog_5f0cf7bd0100c9oa.html OpenGL官方网站(英文) http://www.opengl.org 下面我将对Wi ...

  7. Ubuntu 18.04安装OpenCV4.0和环境配置

    文章目录 1 安装前准备 1.1 安装依赖 1.2 下载源文件 2 安装过程 3 OpenCV配置环境 3.1 pkg-config环境 3.2 动态库环境 3.3 python-opencv环境 4 ...

  8. c语言开发环境 推荐,C语言复习和VC++6.0开发环境推荐.ppt

    C语言复习和VC6.0开发环境推荐 * * * * * * * * * F10-单步调试 F11-进入函数内部调试 Shift+F11-从函数内部回到调用函数(如main) Ctrl+F10-运行到光 ...

  9. VC6.0下opencv1.0的环境配置

    本文内容取材于http://blog.csdn.net/haizimin/article/details/7734184 以OpenCV安装到如下目录为例: C:\Program Files\Open ...

最新文章

  1. 毕马威:2018全球科技创新报告(附PDF下载)
  2. USB Host Device And OTG
  3. Python PyCharm利用PyQt5使QPlainTextEdit支持拖放文件,类提升,重写QPlainTextEdit类
  4. HTTP代理模块(HTTP Proxy)
  5. UE4 移动平台游戏开发
  6. 由异常掉电问题---谈xfs文件系统
  7. mysql视图改造实体表_数据库视图改了对基表
  8. 第四章:变量、作用域和内存问题
  9. VoxelNet:End-to-End Learning for Point Cloud Based 3D Object Detection阅读笔记
  10. 软件测试-测试类型分类
  11. Vue项目中实现改变屏幕尺寸重新刷新页面-计算页面尺寸
  12. Java - 计算两个经纬度之间的直线距离
  13. css p段落首行缩进两个字符
  14. 如何选择企业电脑加密软件,知道这几点一定不后悔!
  15. pdb文件及其作用(转)
  16. Xcode 工程清理瘦身
  17. 纯手工采用java编写双色球、大乐透随机生成算法,真实模拟出球
  18. 多线程爬取携程网酒店数据,星级数据和经纬度
  19. 台式计算机设置常亮,电脑常亮不灭怎么设置
  20. 【Reference reading】用19F标记的BPA-果糖复合物在C6老鼠胶质瘤模型的19F MRI和19F MRS来优化硼中子捕获治疗(BNCT)

热门文章

  1. 应用需要android权限,如何找出android应用程序需要的权限
  2. mysql with 查询_mysql笔记(6)-多表查询之with
  3. nessus8.9.0百度网盘_免费百度网盘SVIP共享20.1.19
  4. apue.h头文件内容
  5. yaf index.php,yaf框架访问路由为什么始终访问INDEX下的INDEX控制器下的INDEX方法
  6. linux 单显卡一拖二,那些有双显卡的,可以试试用opensuse一拖二(拖机)
  7. php 并发出站,PHP控制站点并发
  8. 表情识别(三)--基于几何与Gabor小波的多层感知
  9. JWT教程_3 oauth和JWT 整合
  10. 保护自己之手机定位信息收集