首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
X86
» Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2017-11-18 13:11
|
只看该作者
Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建
1. 安装VS2010,WDK7.60(GRMWDK_EN_7600_1)
2. 新建VC 控制台项目(选择为空项目)
3. 新建项目配置“driver” ,点击下拉按钮-点击(配置管理器)
输入名称(driver)点击确定就可以了,其他的不要动哦!
完成后的效果!
点击确定按钮之后呈现出来的画面
鼠标右击新建的driver属性,会弹出以下窗口!
4.
设置VC++路径
<
我把wdk安装在E盘下
>
a. 配置可执行文件目录:E:\WinDDK\7600.16385.1\bin\x86;
b. 配置包含目录:E:\WinDDK\7600.16385.1\inc\ddk
E:\WinDDK\7600.16385.1\inc\crt
E:\WinDDK\7600.16385.1\inc\api
c. 配置库目录: E:\WinDDK\7600.16385.1\lib\win7\i3865
新建C/C++文件 不然无C/C++设置选项
<刚开始我们创建了一个空的项目所以项目里没有c++文件,现在要做的就是在空的项目-源文件-添加一个新建项c++文件>
常规
目标文件扩展名:.sys //必选
6. 设置C/C++选项
常规选项卡
1 调试信息格式(C7 兼容(/Z7) //可选
2 警告等级 (2 级(/W2) //可选
3 将警告视为错误 (是(/wx) //可选
优化选项卡
优化(禁用/Od) //可选
预处理器
预处理器定义:WIN32=100;_X86_=1;WINVER=0x501;DBG=1 //必选
代码生成
启用最小重新生成:否 //可选
基本运行时检查:默认值 //可选
运行时库:多线程调试(/MTd) 或 多线程(/MT) //建议选
<本人选择的是多线程调试(/MTd)>
缓冲区安全检查:否 //可选
(可避免出现 LINK : error LNK2001: 无法解析外部符号 __security_cookie)
高级
调用约定 __stdcall(/Gz) //必选
7. 链接器设置
常规
启用增量链接:否(/INCREMENTAL:NO) //建议 选上
忽略导入库:是 // 可选
( 设置为此值时,必须在附加库目录中加: E:\WinDDK\7600.16385.1\lib\win7\i3865 这样项目就不会依赖 IDE 环境的设 置)
如果否 ( 设置为此值时,将依赖 IDE 的环境的相关设置 )
输入
附加依赖项
ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIBCMT.LIB //必选
//NT式驱动 ntoskrnl.lib WDM式驱动 wdm.lib
( HalXXX 函数在Hal.lib, WmiXXX 函数在 wmilib.lib , NdisXXX函数在 ndis.lib )
( 必要时需要增加微软的标准库 MSVCRT.LIB MSVCRTD.LIB(调试库) LIBCMT.LIBIBCMTD.LIB(调试库) )
( 如果源码中有 source 文件,那么该文件的 TARGETLIBS 字段会列出该项 目需要的库 )
忽略所有默认库: 是 (/NODEFAULTLIB) //必选
清单文件
:
启用用户账户控制(UAC) 否 //必选
不然会出现 >LINK : fatal error LNK1295: “/MANIFESTUAC”与“/DRIVER”规范不兼容;链接时不使用“/MANIFESTUAC”
调试
:
生成调试信息 是(/DEBUG) //可选
生成映像文件:是(/MAP) //可选
映像文件名:$(TargetDir)$(TargetName).map //可选
系统(System)
子系统: 控制台(/SUBSYSTEM:CONSOLE) //必选
堆栈保留大小:4194304 //可选
堆栈提交大小: 4096 //可选
驱动程序: 驱动程序(/DRIVER) //必选
高级:
入口点:DriverEntry //必选
随机基址:清空 //
把框里的数据删掉。(yes也不是no也不是就是要一个干干净净的文本框)
//必选
不然会出现 e:\xxx.sys : fatal error LNK1295:
“/DYNAMICBASE”与“/DRIVER”规范不兼容;链接时不使用“/DYNAMICBASE”
数据执行保护(DEP): 清空 //
把框里的数据删掉。(yes也不是no也不是就是要一个干干净净的文本框)
//必选
不然会出现 e:\xxx.sys : fatal error LNK1295:
“/NXCOMPAT:NO”与“/DRIVER”规范不兼容;链接时不使用“/NXCOMPAT:NO”
设置效应和:是(/RELEASE) //可选
基址:0x10000 //建议选上
命令行:/SECTION:INIT,D /IGNORE:4078
(建议不要写进去,会报错!)
最后给出一个超级简单的代码来测试一下我们配置的是否成功??
#include "ntddk.h"
NTSTATUS
DriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath)
{
return STATUS_UNSUCCESSFUL;
}
如果没有报错那么恭喜你配置成功了!
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议