Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建
VS2008,DDK,XP和DDKWizard搭建驱动开发环境
但2kddk写出来的东西,xp和2k都能用
4. 想写个兼容性比较好的驱动,应该用什么版本的 DDK 呢?
兼容性最好应该是用xpddk编译出来的驱动在xp上用,2kddk编译出来的在2k上用。
代码也许是一样的,但最好到各自的平台上编译一下。
我怎么很好用啊:eek:
--------------------------------------------------------------------------------
pfzhao2008-07-30, 15:27
DDKBUILD集成环境,可用在任何VS,所以VS6一样可以。
下面简要介绍一下配合DDKWizard对WindowsXP下驱动程序的开发环境进行配置:
1. 安装VisualStudio 2008。既然是开发Windows下的驱动程序,MS的开发工具是一定的了,出了VS2008,当然使用。
okbaby2008-08-06, 12:23
...
很好啊,我最近刚更新到VS2008,很爽啊
--------------------------------------------------------------------------------
snowbirdcn2008-08-06, 14:28
zhuwg2008-07-28, 08:14
- -
Windows7+VS2010下OpenCV环境配置
Windows7+VS2010下OpenCV环境配置发布于2013年11月22日作者:John Hany2,682次阅读OpenCV(Open Source Computer Vision Library)是BSD协议下的开源代码库。
OpenCV提供了一系列高性能的图像处理函数。
目前(2015.01.27)最新版本是2.4.10。
1.x版本使用C的API,2.x版本同时提供C++的API。
全新的3.0.0版本已经到了Beta阶段,相对2.x会有很大变化。
C++版本的数据结构和函数的性能比C版本的要好很多,如果是在嵌入式平台使用OpenCV,只能用C版本;否则,最好使用C++来写。
我的配置情况:Windows 7 旗舰版x64Visual Studio 2010 旗舰版.NET Framework 4.5OpenCV 2.4.71.下载并解压OpenCV从官网可以下载最新版,或者在这里直接下载2.4.10版本。
下载到的文件名为“opencv-2.4.10.exe”,是个自解压文件,大小350MB左右。
下载好之后,解压到任意一个文件夹,比如“D:\windows”。
没有必要手动创建一个专门的文件夹,因为文件在解压时会自动创建一个叫opencv的文件夹,并把所有文件都解压到这个文件夹内。
2.设置环境变量OpenCV库函数需要通过用户环境变量调用所需要的库文件。
点击:开始->计算机(右击)->属性->高级系统设置->高级->环境变量,在用户变量里增加一项:变量名:path变量值:D:\windows\opencv\build\x86\vc10\bin如果已经有path项,在其变量值结尾添加英文分号“;”,再加上上面那个值。
这里的“x86”代表目标程序是32位的,如果要写64位的程序则选择“x64”文件夹。
并不是根据开发环境(你的机器)选择的。
后面的“vc10”代表使用Visual C++ 2010开发。
windows驱动开发和调试环境搭建
Windows驱动开发和环境搭建【文章标题】: Windows驱动开发和调试的环境设置【文章作者】: haikerenwu【使用工具】: VC6.0,VMware6.0.3,Windbg【电脑配置】: 惠普笔记本xp sp3(一)VMWare安装篇VMWare的安装一路Next即可,关于其序列号,百度一下就能找到,虚拟机安装完成之后,需要安装操作系统,我在虚拟机中安装的是windows xp sp2系统。
点击“文件”----“新建”----“虚拟机”进入新建虚拟机的向导,配置虚拟系统参数选择虚拟系统文件的兼容格式(新手推荐选择默认选项)按照默认设置继续点击下一步,选择好您需要的操作系统,此处我选择的是Windows XP Prefessional。
设置虚拟机名称和虚拟操作系统安装路径,我单独空出来一个F 盘,将虚拟机和虚拟操作系统全部装在该盘。
配置网络模式(推荐选择NA T,一般主机不用做任何的设置虚拟机就可以利用主机上网)。
配置虚拟磁盘的容量。
在这里可以直接单击完成,来完成基本操作设置,磁盘默认空间是8GB,用户可以根据自己的实际使用情况来调整大小,也可以自定义分区。
操作完成之后,在“VM”菜单下有个“setting。
”菜单,点击此菜单,在CD-ROM中选择合适的选项,我使用的是Use ISO image 选项,将我的xp sp2操作系统的ISO映像路径设置好,安装操作系统。
点击ok之后,启动虚拟机,即开始安装操作系统,安装过程跟普通装机过程相同。
安装完成之后,启动操作系统,然后在VM菜单下点击“Install VMWare Tools”,把虚拟操作系统的驱动装好。
(二)VMWare设置篇虚拟操作系统安装完成之后,就是设置该系统为Windbg双机调试做准备。
关闭虚拟操作系统,添加一个虚拟串口,因为我的电脑是笔记本,现在的笔记本很少配置串口,所以要虚拟一个串口,这个过程由VMWare完成,图解如下。
VS2010+WinDDK搭建驱动开发环境
VS2010+WinDDK搭建驱动开发环境
因⼯作需要,需要研究⼀下Windows驱动开发。
我们知道,编译驱动程序主要是通过两种⽅案:第⼀种是通过WinDDK提供的build命令
+source⽂件进⾏编译;另外⼀种是通过VC的IDE进⾏编译。
微软推荐开发者使⽤第⼀种,即利⽤WinDDK提供的编译命令进⾏编译,但是,本质上,两种⽅法到最后都是调⽤cl.exe和link.exe进⾏编译,区别只是两种⽅法设置参数、环境变量的⽅式不同⽽已。
环境准备
VS2010
这个能够在msdn下载中⼼下载到试⽤版,当然,也可以通过其他途径,你懂的。
WinDDK
环境配置
新建Win32项⽬
将⽰例代码拷贝到D:\HelloDriver\HelloDriver⽬录,并将其添加到项⽬中
配置属性-常规
配置属性-C/C++-常规
配置属性-C/C++-预处理器
x86 Debug
WIN32
_CONSOLE
_X86_
_DDK_
_DEBUG
DBG=1
x86 Release
WIN32
_CONSOLE
_X86_
_DDK_
_NDEBUG
DBG=0
配置属性-C/C++-⾼级
配置属性-C/C++-代码⽣成
配置属性-链接器-常规
我们看到路径是…\WXP\i386,意思就是针对Windows XP系统和i386架构CPU,如果想编译其他系统,或者其他CPU的驱动,修改此路径即可。
配置属性-链接器-输⼊
配置属性-链接器-清单⽂件
配置属性-链接器-系统配置属性-链接器-⾼级。
VS下配置Windows驱动开发环境步骤
VS 2005 下配置Windows 驱动开发环境心得所谓万事开头难,自己参照《windows驱动开发技术详解》、在网上收集一些资料,终于在VS2005成功配置开发环境。
网上大多讲述的是VC6.0 还有就是利用ddkwizard 插件配置环境,VC6.0的配置跟VS2005还是有很大不同的,又因为是初学者觉得用ddkwizard 帮助我们做了很多工作,不利于学习。
所以自己一步步在VS2005配置。
在这里列出仅供参考:预备工作:1、安装了DDK(呵呵,说句废话)。
目录名字最好不要带空格;2、在VS2005中选择“生成”|“配置管理器”---在活动解决方案配置中新建一个方案名(不要Debug、Release);3、选择”工具“|”选项“菜单选择”项目和解决方案“ 选项卡,选择“VC++目录”选项卡在”显示以下内容的目录“下拉菜单中选择”包含文件“菜单添加”"C:\WinDDK\5112\inc\crt", "C:\WinDDK\5112\inc\mfc42", "C:\WinDDK\5112\inc\ddk" 和"C:\WinDDK\5112\inc\api" , 选择”库文件“菜单添加”C:\WinDDK\5112\lib\wxp\i386"。
不同版本的WDM对应中间的数值会不同,我这里是5112, 你的可能不是这个版本,那么这个数值就不同。
接下来就是工程配置属性项4、选择”项目“|”属性“ 弹出”属性页“对话框选择”配置属性“选项卡选择“C/C++”选项卡4.1、再选择”常规“选项卡1、”调试信息格式“选择C7兼容(/Z7)用Z7模式产生调试信息2、取消显示启动版权标志选择是(/nologo) (默认)3、警告等级选择 3 级(/W3)4、将警告视为错误选择是(/WX)4.2、选择”优化“选项卡1、优化选择禁用(/Od)其他默认即可4.3 选择”预处理器“选项卡1、预处理定义编辑WIN32=100;_X86_=1;DBG=1 (WINVER=0x500,是因为你是for 2K的。
Windows 7 + Visual 2010 + WDK 7600.16385.1 配置方法
Windows 7 + Visual 2010 + WDK 7600.16385.1 配置方法1. 新建一个空DLL项目2. 增加一个主程序文件,如entry.c3. 找到配置管理器,添加一个新的配置叫做Driver Debug(以后还可以再设置一个Driver Release),如图4. 在属性管理器上找到Driver Debug,右键菜单中找到“属性”,开始配置5. 在“常规”选项卡中5.1 目标文件扩展名:修改为.sys5.2 清除时要删除的扩展名:添加一个*.sys,其他继承原来的系统设置6. “VC++目录”选项卡中6.1 可执行文件目录:添加一条F:\WinDDK\7600.16385.1\bin\x866.2 包含目录:添加三条,分别为F:\WinDDK\7600.16385.1\incF:\WinDDK\7600.16385.1\inc\apiF:\WinDDK\7600.16385.1\inc\ddk6.3 库目录:添加一条F:\WinDDK\7600.16385.1\lib\win7\i3867. “C/C++” 选项卡中7.1 预处理器:“预处理器定义” 添加定义WIN32=100;_X86_=1;WINVER=0x501;DBG=1如果是Release,那么可想而知,不需要DBG=17.2 高级:“ 调用约定” 修改为__stdcall(/Gz)7.3 常规:“警告等级”设置为/W4 将警告视为错误选为是/WX其他为建议可选项目优化:优化选项可以选择为已禁用/Od代码生成:缓冲区安全检查否8. “链接器” 选项卡中8.1 输入:在“附加依赖项”中输入ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LI BCMT.LIB把“忽略所有默认库” 选择为是(/NODEFAULTLIB)8.2 清单文件:启用用户账户控制(UAC)否否则会出现“/MANIFESTUAC”与“/DRIVER”规范不兼容8.3 系统:“子系统” 选择为控制台(/SUBSYSTEM:CONSOLE)“驱动程序” 选择为驱动程序(/DRIVER)8.4 高级:“入口点” 输入为DriverEntry“基址” 输入为0x10000把“随机基址” 中原来的是(/DYNAMICBASE) 内容删掉,只留下空的文本框,因为“/DYNAMICBASE”与“/DRIVER”规范不兼容把“数据执行保护(DEP)” 中原来的是(/NXCOMPAT:NO) 内容删除,只留下空的文本框,因为“/NXCOMPAT:NO”与“/DRIVER”规范不兼容8.5 调试:根据当前是Driver Debug 还是Driver Release 选择是否生成调试信息是(/DEBUG)8.6 命令行:添加一段/SECTION:INIT,D /IGNORE:4078这样可以防止出现4078的警告【找到多个“INIT”节,它们具有不同的属性(E2000020)】其他为可以选择的选项常规:“启用增量链接” 可以设置为否(/INCREMENTAL:NO) 建议选上这样编译环境就设置完成了,还可以再添加一个Driver Release 版本,去掉调试信息但是,这样设置还是会有一堆编译错误,如:C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): errorC2143: syntax error : missing ')' before 'const'C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing '{' before 'const'C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2059: syntax error : ','C:\Program Files\Microsoft Visual Studio 10.0\VC\include\crtdefs.h(550): error C2059: syntax error : ')'C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(56): error C2143: syntax error : missing ')' before 'type'那么这时候需要拷贝F:\Program Files (x86)\Microsoft Visual Studio10.0\VC\include\sal.h,然后覆盖掉F:\WinDDK\7600.16385.1\inc\api\sal.h这样就会导致另外一个问题,Microsoft Visual Studio 10.0\VC\include\sal.h中include 了CodeAnalysis\sourceannotations.h,所以如果在编译环境中调用build,会出现错误找不到sourceannotations.h,所以要:把Microsoft Visual Studio10.0\VC\include\CodeAnalysis拷贝到F:\WinDDK\7600.16385.1\inc\api 下!!。
DirectX+VS2010环境搭建
DirectX +VS2010环境搭建1.下载MicroSoft DirectX SDK(February 2010),D irectxsdk 安装完后,默认会生成一个环境变量DXSDK_DIR2.下载DirectShow SDK 搜索Extras 下载 Extras\DirectShow\Samples\C++\DirectShow下找到BaseClasses文件夹3.找到baseclasses.sln 由于网上下载的是高版本的 VS编译的程序,这里需要修改成适合自己VS版本,重命名baseclasses.sln为baseclasses.txt,打开txt文档,修改内容为(VS2010为例):Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 保存退出然后把baseclasses.txt改回baseclasses.sln4.打开Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\baseclasses.sln选中项目,在弹出的属性页中,选择"VC++ Directories",设置头文件、库文件等路径:在"Include Directories"中添加头文件目录,如下图(在我电脑上DX SDK的目录是D:\MS_DX_SDK):接下来是库目录:DirectX的头文件库目录一样设置,目前的DirectX SDK 跟Direct Show的SDK分开了,两项头文件跟库目录设置一样5.右键baseclasses项目,重新编译出现一系列的Warning跟Error,一个一个来解决: 1.error C4430: 缺少类型说明符 - 假定为 int。
注意: C++ 不支持默认 int找到出错的文件行修改 operator=(LONG)为LONGoperator=(LONG);2.warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。
搭建驱动编译环境DDKWizard+WinDDK+VS2005
搭建驱动编译环境DDKWizard+WinDDK+VS2005VS2005 + DDK + DDKWizard环境的配置1.为什么需要这些软件相信⼤家都⽤过VC开发过应⽤程序,VC屏蔽了⼀些编译程序⽅⾯的繁琐的细节,给我们提供了⼀个⽅便快捷的编程环境。
如果还要使⽤SDK开发程序,那么只需要安装SDK,并使⽤SDK程序⾥⾃带的环境注册⼯具就能⾃动配置VC的相关参数,我们同样不需要关⼼太多东西,只需要关注怎么编程即可。
很遗憾,如果想写驱动,就不是这么容易了- -||,但搭建编程平台、让初学者成功编译并执⾏⼀个驱动程序是⾮常重要的,有不少初学者就是因为花了好⼏个⼩时都不能编译出驱动,⽽放弃Windows驱动编程的学习。
其实搭建驱动编程环境并不难,只要按照特定步骤做即可完成。
0.0开发Windows驱动程序需要微软提供的DDK(Driver Development Kit)开发包,因为编译DDK程序需要特殊的编译程序,不能使⽤VC⾃带的编译程序,⽽且驱动程序的“⼯程参数”跟普通WIN32⼯程有很⼤的不同,以上这些原因可能就是微软不把DDK环境集成到VC中的原因。
DDK开发包⾥⾯有编译驱动所需的头⽂件、库⽂件、编译程序、参考⽂档等相关⽂件,所以理论上编译驱动程序只需要“记事本+ DDK”就能写驱动了(⾄于⽤起来多蛋疼可想⽽知- -)。
我们真正需要的是!!驱动⼯程向导!!,⽽不是命令⾏和记事本(真懒啊- -||)。
⽹上有两种驱动开发环境,⼀种是DriverStudio,另⼀种就是DDKWizard。
这两款软件都提供驱动⼯程的⼯程向导,但前者和VC的接合度不⾼,所以在此我们选择DDKWizard作为驱动开发的向导⼯具。
可能会有⼈问,VC6体积⼩、速度快,为什么偏要⽤VS2005?额…原因是DDKWizard不兼容VC6 - -||。
综上所述,我们⼀共需要4款软件:1.Visual Studio 2005(集成开发环境)2.Driver Development Kit (编译驱动程序的核⼼全在这⾥了- -)3.DDKWizard(需到/doc/217249586.html/下载4个⽂件:ddkwizard_setup.exe、ddkbuild_bat.zip、ddkbuild_cmd.zip、ddkwiz_manual.pdf)4.Visual Assist X(编程时不可多得的好⼯具,能⾃动提⽰函数名、变量名以及函数参数等)(还是懒- -)2.具体步骤2.1.安装VS2005图表 1 安装VS2005 2.2.安装DDK(我的⽬录是D:\WINDDK)图表 2 安装DDK2.3.安装DDKWizard安装DDKWizard并将ddkbuild.bat 和ddkbuild.cmd 拷贝到DDK安装根⽬录。
win7 VS2010 DirectX 配置
1.内容简介此文档主要目的是谈清DirectX与VS2010的配置问题,目的是在VS中能调用Direct3D API 来处理视频图像。
2. 软件介绍VS2010(Microsoft Visual Studio 2010)是微软公司推出的开发环境。
DirectX,(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。
由C++语言实现,遵循COM。
被广泛使用于Microsoft Windows、Microsoft Xbox和Microsoft Xbox 360电子游戏开发,并且只能支持这些平台。
3.Direct11与VS2010配置步骤(注:必须得先下载DirectX SDK并安装)1>建立项目。
2>打开项目属性页。
打开VS“属性管理器窗口”->右键需要配置的“DirectX环境的项目”->“属性”。
3>加入DirectX路径。
左菜单栏“配置属性”->“VC++目录”#.添加“$(DXSDK_DIR)Utilities/Bin/x86”(不包括双引号)到“可执行文件目录”;#.添加“$(DXSDK_DIR)Include”(不包括双引号)到“包含目录”;#.添加“$(DXSDK_DIR)Lib/x86”(不包括双引号)到“库目录”;注意:如果是制作64位的游戏,添加的是“$(DXSDK_DIR)Lib/x64”(不包括双引号)到“库目录”,其他不变。
配置完成后如下图:图1.修改VC++目录“$(DXSDK_DIR)”代表DirectX的安装目录,如代表D:/ProgramInstall/DirectX 所以更直白的配置方式为:图2.路径配置方式图1,图2的配置方式都可以。
建议用图2配置方式,含义更加明显:使Direct3D程序能找到其中相应的头文件和Direct3D API函数的路径。
4.解决一个编译错误首次编译一个Direct3D程序时,会出现“不能打开d3dx.h: No Such directory”。
[0-2]配置驱动开发环境
当确定你的硬件没有问题,那就开始配置“软”的方面。
首先,你要有一台运行WINDOWS 7 X64的电脑,然后还要安装有VS2010和WDK7。
VS2010和WDK7的下载地址分别如下:
如果您不会选择,在安装时选择“完全安装”即可:
至于驱动开发环境的配置,网上有很多的教程,本论坛的网友也发了一个“科普贴”(/bbs/thread-7814-1-1.html)。
但是如果把网上的东西抄下来糊弄大家就没意思了。
我并不喜欢直接用VS开发驱动,而是喜欢直接用记事本进行开发、输入命令进行编译。
我个人用的驱动开发工具是NOTEPAD++(官网:),大家可以上去下载最新版,下载并后安装完毕后,设置一下语言格式(“设置”->“语言格式设置”)。
Notepad++支持代码高亮,这对驱动开发来说就足够了。
NOTEPAD++有个中国人写的代码格式化的开源插件,叫做NppAStyle。
官方首页:/projects/nppastyle。
下载完毕后解压缩,把UNICODE版的NppAStyle.dll复制到C:\Program Files (x86)\Notepad++\plugins目录下。
点开NOTEPAD++的“插件”->“NppAStyle”->“Options”,选择你想要的格式化风格(我喜欢的是ANSI风格)即可。
要格式化的时候,按下Alt+F就能格式化了。
(本文提到的工具或源码,除有版权问题的之外,均可以在论坛上下载。
)。
驱动环境配置
1、安装VS2010,安装WDK 7.0(DDK);2、新建VC++->Empty Project3、打开Configuration Manager 并新建一个名称为“ dirver ”的Solution Configuration 并将“dirver”设为Active Solution Configuration .4、打开View-> property Manager。
5、在"dirver" solution configuration 上点击右键,选择Add new property Sheet。
取名为“dirverProperty”. 并对他进下以下设置。
5.1. C\C++ - General - Debug Information Format = Program Database (/Zi)5.2. C\C++ - Preprocessor - Preprocessor Definitions = _X86_ [add also DBG for Debug config]【WIN32;_DEBUG;_X86_;i386;STD_CALL;CONDITION_HANDLING;WIN32_LEAN_AND _MEAN;NT_UP;SRVDBG;DBG;_IDWBUILD;_WIN32_WINNT=0x0400;% (PreprocessorDefinitions)】5.3. C\C++ - Code Generation - Enable C++ Exceptions = No5.4. C\C++ - Code Generation - Basic Runtime Checks = Default5.5. C\C++ - Code Generation - Buffer Security Check = No (/GS-)5.6. C\C++ - Advanced - Calling Convention = __stdcall (/Gz)5.7. C\C++ - Advanced - Compile As = Compile as C Code (/TC) [if you are going to use plain C]5.8. Linker - General - Output File = $(OutDir)\$(ProjectName).sys5.9. Linker - General - Enable Incremental Linking = Default5.10. Linker - Input - Additional Dependencies = ntoskrnl.lib hal.lib $(NOINHERIT) [add here needed libs here e.g. ntoskrnl.lib hal.lib]【不知道上面是不是笔误,应该为:ntoskrnl.lib;hal.lib;%(AdditionalDependencies)】5.11. Linker - Input - Ignore All Default Libraries = Yes (/NODEFAULTLIB)5.12. Linker - Manifest File - Generate Manifest = No5.13. Linker - System - SubSystem = Native (/SUBSYSTEM:NATIVE)5.14. Linker - System - Driver = Driver (/DRIVER)5.15. Linker - Advanced - Entry Point = DriverEntry5.16. Linker - Advanced - Base Address = 0x100005.17. Linker - Advanced - Randomized Base Address = Disable (/DYNAMICBASE:NO) 【这个也是错误的:应该置空】5.18. Linker - Advanced - Data Execution Prevention (DEP) = Disable (/NXCOMPAT:NO) 【这个也是错误的:应该置空】6. Config VC++ Directories6.1 Open Open up property manager by clicking on Menu View->Property Manager. 6.2 Expand the project node and then the Configuration|Platform nodes, you will see "Microsoft.cpp.<Platform>.users" file for each Configuration|Platform. These are the filesfor the global settings, similar to the old tools/Options/VC++ Directories.6.3 Multi-Select "Microsoft.cpp.<Platform>.users", right click and bring up the property page window6.4 In the property page window, click on "VC++ Directories" (for example) in the left pane, add new paths for the directories such as "Include Directories". separated bysemicolons(eg:Include Directories config As:a、可执行文件:E:\\WinDDK\\7600.16385.0\\bin\\x86E:\\WinDDK\\7600.16385.0\\bin\\x86\\x86E:\\WinDDK\\7600.16385.0\\tools\\pfd\\bin\\bin\\x86b、包含文件:E:\\WinDDK\\7600.16385.0\\inc\\ddkE:\\WinDDK\\7600.16385.0\\inc\\crtE:\\WinDDK\\7600.16385.0\\inc\\apic、引用文件:E:\\WinDDK\\7600.16385.0\\lib\\wxp\\i386d、库文件:E:\\WinDDK\\7600.16385.0\\libE:\\WinDDK\\7600.16385.0\\lib\\wxp\\i386e、源文件:E:\\WinDDK\\7600.16385.0\\src)6.5 Make sure to save the settings before shutting down Visual Studio.6.6 Re-launch Visual Studio and the new settings will be in effect.6.7 Note: If you would like to only change the settings for one project, you can right click on the project and bring up the property page. Change the settings for “VC++Directories”, these settings will be persisted to the project file.七. OK. Have done. Now you can test it with simple code, e.g.:#include "ntddk.h"NTSTATUSDriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath){return STATUS_UNSUCCESSFUL;}vs2010配置驱动开发基本上按照如上所说就差不多了,第一,但是这样配置出来的,在windbg联机调试时,是打不开源文件的,我找了一晚上,网上也没有明说的,但是后来对比vs2010编译出来的和直接用winddk checked模式编译出来的sys,发现vs2010的sys中缺少pdb信息,从而无法定位源文件,所以在自定义的属性中,链接器(linked)---->调试(debug)中生成调试信息选择是(/debug)就可以了第二,这样子生成会出现error MSB3191: 无法创建目录“E:\driver\code\Config\serialfilter\E:\driver\code\Config\driver”。
vs2010中DirectX开发环境的配置
一个DirectX程序要想正确的编译和链接,需要下面三个主要前提一安装DirectX SDK二正确配置.h文件路径和.lib文件路径三正确链接所需.lib文件详细步骤如下:一.安装DirectX SDK二.正确配置.h文件和.lib文件路径1. 启动VS,依次选择tools-option-projects andsolutions-VC++Directories,在show directories for下面有几个选项(这一步里也许会出现“VC++ 目录编辑功能已被否决”的情况,我们可以不采用这个方案进入vc++Directories,转而采用如下方案:执行菜单栏中的<视图>--<属性管理器>,在新出现的“属性管理器”工作区中,点击项目->Debug|Win32->erDirectories即可打开vc++Directories)2. 选择Include files, 这个是DirectX头文件所在的地方,点击下面的新建文件夹按钮将DirectX头文件所在的路径输入进去。
在我这里是C:/Program Files/Microsoft DirectX SDK (March 2008)/Include3. 选择Library fies,这是.lib文件所在的地方,如法炮制,将DirectX .lib文件的路径输入进去,在我这里是C:/Program Files/Microsoft DirectX SDK (March 2008)/Lib/x86到这里,如果你包含了所有所需的.h文件,你的程序编译应该没有问题,但是连接的时候你很可能会发现一大堆的unresolved external symbols...错误。
因为你还没有链接lib文件注意,以上是针对整个solution的设置,也就是说,以后创建的prject都将应用上面的设置,如果想针对project进行设置,那么请用下面的方法。
详解VS2010如何搭配汇编程序开发环境的图解教程
详解VS2010如何搭配汇编程序开发环境的图解教程本文和大家分享一下如何搭配汇编程序开发环境的图解教程,非常不错的文章哦。
引子由于这些日子一直都在研究底层的技术,从Windows 驱动程序,到Windows 内核等等技术的学习,让我对底层的技术越发有兴趣了,而刚好,在研究WRK 时,对内存管理,寄存器,地址总线,数据总线,控制总线等的理解不够透彻,所以越发的想学习汇编程序设计来提升功力,而由于近来在公司里一直都有项目压着,所以在公司里也实在不好拿本汇编程序设计看,所以只好晚上回来学习了,汇编看了几个晚上,也算是蛮有感觉的。
今天就先来搭个开发环境再说吧。
开发环境搭配我介绍四种开发汇编程序的方式:第一种:直接在Dos 环境下使用Edit 命令调出源码编辑框,生成源码后,可以使用由微软提供的masm 汇编编译器来对源码进行编译,编译完后再使用Linker 连接器即可得到可执行文件,这种方式现在几乎被灭绝了(当然使用masm 汇编编译器还是很普遍的),除非你真要在DOS 环境下运行汇编程序;第二种:通过简化第一种方式而来;第三种:直接使用Masm for Windows 集成实验环境,这个开发环境呢,非常适合汇编语言的初学者,因为这个IDE 本身就是由一些从事汇编程序教学的大学老师开发的出来用于汇编初学者进行学习和实验的,所以使用简单,方便,这里可以对这个IDE 稍加推荐;第四种:则是通过Visual Studio 这个强大的IDE 来实现汇编程序的编译,运行和调试,至于Visual Studio 就不多做介绍了,.Net 用了这么多年,这东西强大到什么程度那是总所周知的;第一种方式:使用Edit + MASM 5.0 编译器+ Linker 连接器其实这种方式是很简单的,只是很麻烦,因为简单而且麻烦,所以我采用尽可能的将截图传上来,然后稍加注解的方式进行介绍,软件准备:需要MASM 5.0 或者以上的汇编编译器首先,是要编辑汇编源代码:其实对于源码的编辑根本不需要向如下这么麻烦,直接拿个记事本就OK 了运行cmd 命令输入Edit 命令从而弹出汇编源码编辑框在源码输入框中输入汇编源码将编辑好的汇编源码保存到xx.asm 文件中然后就是要编译编辑好的汇编源代码在Dos 环境下进入到MASM 5.0 汇编编译器所在的目录然后运行masm.exe可以从上面的截图中看到[. ASM] 的标记,这个标记代表的是需要在这里输入要编译的源程序文件名,这里有一点特别的是,由于默认的文件扩展名为 .asm ,所以在编译 .asm 的汇编源程序时可以不用指定源程序所在文件的扩展名。
VS2010CAD开发环境配置
VS2010CAD开发环境配置手动编写一个ObjectArx2012应用程序(1) 首先建立一个自己的工作目录,假定工作目录为D:\Project(2) 启动VS2010,选择“文件”菜单的“新建-->项目”命令,出现新建项目对话框。
(3) 在“已安装的模版”中,选择“Visual C++-->Win32”选项,在项目列表中选择Win32项目。
在“名称处”填写项目名称,然后单击确定,弹出Win32应用程序向导对话框。
(4) 点击下一步,弹出应用程序设置对话框,在“应用程序类型”下选择“DLL”,点击完成。
(5) 打开项目属性页,在“配置属性-->常规-->目标文件扩展名”中,将.dll改成.arx,在VC++目录中,指定要包含的库和头文件。
(6) 在“C/C++-->代码生成-->运行库”选项中,设置成“多线程 DLL (/MD)”。
(7) 在“链接器-->常规-->输出文件”选项中,填写输出文件。
(8) 在“链接器-->常规-->输入-->附加依赖项”选项中,添加rxapi.lib和acdb18.lib两个库。
(8) 在“链接器-->常规-->高级-->目标计算机”选项中,修改为“MachineX64(/MACHINE:X64)”,在“配置管理器”中,将“活动解决平台(P)”改为“x64”,关闭对话框。
确定关闭属性页。
(9) 在“ObjectArxEnv2012.cpp”中,添加如下代码:#include "rxregsvc.h"#include "acutads.h"// Simple acrxEntryPoint code. Normally intialization and cleanup // (such as registering and removing commands) should be done here. //extern "C" AcRx::AppRetCodeacrxEntryPoint(AcRx::AppMsgCode msg, void* appId){switch(msg) {case AcRx::kInitAppMsg:// Allow application to be unloaded// Without this statement, AutoCAD will// not allow the application to be unloaded// except on AutoCAD exit.//acrxUnlockApplication(appId);// Register application as MDI aware.// Without this statement, AutoCAD will// switch to SDI mode when loading the// application.//acrxRegisterAppMDIAware(appId);acutPrintf("\nExample Application Loaded");break;case AcRx::kUnloadAppMsg:acutPrintf("\nExample Application Unloaded");break;}return AcRx::kRetOK;}(10) 在“源文件”中添加“ObjectArxEnv2012.def”中,在该文件中添加如下内容LIBRARY " ObjectArxEnv2012"EXPORTSacrxEntryPoint PRIVATEacrxGetApiVersion PRIVATE到此位置环境搭载完毕!VS6.0 改到VS10注意事项:1,将AtdAfx.h中的#define_WIN32_WINNT 0x0400 改为#define_WIN32_WINNT 0x0500 2,重新设置附加依赖项,不是acdb15,而是acdb18,其余都是183,其余参照上边的设置。
图文并茂的超级详细的WIND0WS7加WDF驱动开发环境配置
的设 置)
如果否 ( 设置为此值时,将依赖 IDE 的环境的相关设置 )
输入 附加依赖项
ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib;MSVCRT.LIB;LIB CMT.LIB //必选
//NT 式驱动 ntoskrnl.lib WDM 式驱动 wdm.lib ( HalXXX 函数在 Hal.lib, WmiXXX 函数在 wmilib.lib , NdisXXX 函数 在 ndis.lib ) ( 必要时需要增加微软的标准库 MSVCRT.LIB MSVCRTD.LIB(调试库) LIBCMT.LIBIBCMTD.LIB(调试库) )
其他为建议可选项目
优化: 优化选项可以选择为 已禁用/Od
代码生成: 缓冲区安全检查 否
8. “链接器” 选项卡中
8.1 输入: 在“附加依赖项”中输 入 ntoskrnl.lib;Hal.lib;wdm.lib;wdmsec.lib;wmilib.lib;ndis.lib; MSVCRT.LIB;LIBCMT.LIB
高级
调用约定 __stdcall(/Gz)
//必选
//建议选 <本人
7. 链接器设置
常规
启用增量链接:否(/INCREMENTAL:NO)
//建议 选上
忽略导入库:是
// 可选
( 设置为此值时,必须在附加库目录中加:
E:\WinDDK\7600.16385.1\lib\win7\i3865 这样项目就不会依赖 IDE 环境
这样就会导致另外一个问题,Microsoft Visual Studio 10.0\VC\include\sal.h 中 include 了 CodeAnalysis\sourceannotations.h,所以如果在编译环境中调用 build,会出现错误找不到 sourceannotations.h,所以要:
Windows驱动开发,vs+vm+wdk安装及hello,world
Windows驱动开发,vs+vm+wdk安装及hello,world近期接⼿了⼀个关于Windows系统内核驱动的开发任务,⾸先需要的就是熟悉相关开发环境的配置与调试,这⾥采⽤了vs2013+vm2015+wdk8.1的组合,已经亲测完成(踩了⽆数的坑),在此做⼀下记录,下次需要配置环境的时候可以⽤作参考。
vm,wdk,vs等⼯具先下载安装好。
1.⾸先需要安装win7虚拟机,这⾥需要注意系统的镜像需要时虚拟机专⽤镜像,所以在此保存⼀个64位的win7镜像,可直接下载:ed2k://|file|cn_windows_7_enterprise_with_sp1_x64_dvd_u_677685.iso|3265574912|E9DB2607EA3B3540F3FE2E388F8C53C4|/选择配置好虚拟机之后需要⾸先点击设置删除占⽤com1串⼝的打印机,然后添串⾏端⼝将管道命名为\\.\pipe\com_1(如图所⽰)。
2.虚拟机开机后以管理员权限运⾏cmd,输⼊如下命令开启相应串⼝并关闭64位驱动强制签名(64位驱动要求必须有数字签名才可运⾏,但是可以在测试中关闭)bcdedit /debug onbcdedit /dbgsettings serial debugport:n baudrate:115200bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS3.将主机中已安装的wdk⽬录中找到驱动⽬标程序将其复制进虚拟机中安装3.运⾏vs,创建新的空wdm项⽬新建first.c源程序输⼊helloworld代码#include <ntifs.h> //<ntddk.h>VOID DriverUnload(PDRIVER_OBJECT objDriver){// 避免编译器关于未引⽤参数的警告UNREFERENCED_PARAMETER(objDriver);// 什么也不做,只打印⼀⾏字符串DbgPrint("My Dirver is unloading...");}NTSTATUS DriverEntry(PDRIVER_OBJECT objDriver, PUNICODE_STRING strRegPath){// 避免编译器关于未引⽤参数的警告UNREFERENCED_PARAMETER(strRegPath);// 如果编译⽅式为Debug,则插⼊⼀个INT 3指令,⽅便我们调试// 打印⼀⾏字符串,并注册驱动卸载函数,以便于驱动卸载DbgPrint("My First Dirver!\r\n");//KdPrint(("KD My First Dirver!\r\n"));objDriver->DriverUnload = DriverUnload;return STATUS_SUCCESS;}其中两个函数,DriverEntry是程序⼊⼝相当于main,DriverUnload是卸载驱动时执⾏的函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[置顶]Windows7+WDK+VS2010+VisualDDK驱动开发环境搭建(菜鸟的经验)分类:驱动开发2011-08-12 23:30 863人阅读评论(3) 收藏举报自己在研究驱动开发,第一步就是开发环境的搭建,网上已有很多的教程一,我也是按着教程一步一步搭建的,但在搭建过程的过程当中遇到一些问题,也花了我不少时间。
第一个难题就是,我是Windows7+VS2010+WDK的开发环境。
首先我参考了网上的一篇文章:/guojingjia2006/archive/2011/03/19/142211.html WINDOWS 7 配置驱动开发环境(wdk7.60)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\ddkE:\WinDDK\7600.16385.1\inc\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 errorLNK1295:“/NXCOMPAT:NO”与“/DRIVER”规范不兼容;链接时不使用“/NXCOMPAT:NO”设置效应和:是(/RELEASE) //可选基址:0x10000 //建议选上命令行:/SECTION:INIT,D /IGNORE:4078 (建议不要写进去,会报错!)最后给出一个超级简单的代码来测试一下我们配置的是否成功??#include "ntddk.h"NTSTATUSDriverEntry(PDRIVER_OBJECT DriverObject,PUNICODE_STRING RegistryPath) {return STATUS_UNSUCCESSFUL;}如果没有报错那么恭喜你配置成功了!但是结果失败了,编译的时候会出现错误。
结果在网上找原因呀,发现把vc目录下的sal.h代替inc/api目录下的sal.h, 但是还是编译不过,后来我想还原inc/api目录下的sal.h,所以我就按了ctrl+z,结果不知道为何(可能是点快了),被我删掉了,于是我就没有了inc/api/sal.h。
到止我放弃了上面那blog的方法决定另寻方法。
然后我又在网上找资料,发现了VisualDDK是一个不错的东东,也支持vs2010,于是我下载下来安装。
然后我启动VS2010,新建了一个驱动的项目,试着编译一下(心里在祈祷,让我成功),结果大失所望。
说找不到sal.h,因为我删掉了。
知道原因就好办,我就想重新安装一下WDK吧,但重新安装的时候,才发现不能重新安装,除非你少选一项安装项,首次安装的时候我是全选所有安装项(非常郁闷)。
于是我就报着试一试态度用上面用过的方法:用vc目录下的sal.h代替inc/api目录下的sal.h,然后再编译一次,这次是不同的错了,后来在网上找答案,发现了另一篇文章:/xlhblog/archive/2011/03/22/1991785.htmlWindows 7 + Visual 2010 + WDK 7600.16385.1 配置方法1. 新建一个空DLL项目2. 增加一个主程序文件,如entry.c3. 找到配置管理器,添加一个新的配置叫做Driver Debug(以后还可以再设置一个Driver Release),如图4. 在属性管理器上找到Driver Debug,右键菜单中找到“属性”,开始配置5. 在“常规”选项卡中5.1 目标文件扩展名:修改为.sys5.2 清除时要删除的扩展名:添加一个*.sys,其他继承原来的系统设置6. “VC++目录”选项卡中6.1 可执行文件目录:添加一条 F:\WinDDK\7600.16385.1\b in\x866.2 包含目录:添加三条,分别为 F:\WinDDK\7600.16385.1\inc F:\WinDDK\7600.16385.1\in c\apiF:\WinDDK\7600.16385.1\in c\ddk6.3 库目录:添加一条F:\WinDDK\7600.1 6385.1\lib\win7\i3867. “C/C++” 选项卡中7.1 预处理器:“预处理器定义” 添加定义WIN32=100;_X86_=1;WINV ER=0x501;DBG=1如果是Release,那么可想而知,不需要DBG=17.2 高级:“调用约定” 修改为 __stdcall(/Gz)7.3 常规:“警告等级”设置为/W4 将警告视为错误选为是/WX其他为建议可选项目优化:优化选项可以选择为已禁用/Od代码生成:缓冲区安全检查否8. “链接器” 选项卡中8.1 输入:在“附加依赖项”中输入ntoskrnl.lib;Hal.lib;wdm.lib;wd msec.lib;wmilib.lib;ndis.lib;MSVC RT.LIB;LIBCMT.LIB把“忽略所有默认库” 选择为是(/NODEFAULTLIB)8.2 清单文件:启用用户账户控制(UAC)否否则会出现“/MANIFESTUAC”与“/DRIVER”规范不兼容8.3 系统:“子系统” 选择为控制台(/SUBSYSTEM:CONSOLE)“驱动程序” 选择为驱动程序(/DRIVER)8.4 高级:“入口点” 输入为 DriverEntry“基址” 输入为 0x10000把“随机基址” 中原来的是(/DYNAMICBASE) 内容删掉,只留下空的文本框,因为“/DYNAMICBASE”与“/DRIVER”规范不兼容把“数据执行保护(DEP)” 中原来的是(/NXCOMPAT:NO) 内容删除,只留下空的文本框,因为“/NXCOMPAT:NO”与“/DRIVER”规范不兼容8.5 调试:根据当前是Driver Debug 还是Driver Release 选择是否生成调试信息是(/DEBUG)8.6 命令行:添加一段/SECTION:INIT,D/IGNORE:4078这样可以防止出现 4078的警告【找到多个“INIT”节,它们具有不同的属性(E2000020)】其他为可以选择的选项常规:“启用增量链接” 可以设置为否(/INCREMENTAL:NO) 建议选上这样编译环境就设置完成了,还可以再添加一个Driver Release 版本,去掉调试信息但是,这样设置还是会有一堆编译错误,如: C:\Program Files\Microsoft Visual Studio10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing ')' before 'const'C:\Program Files\Microsoft Visual Studio10.0\VC\include\crtdefs.h(550): error C2143: syntax error : missing '{' before 'const'C:\Program Files\Microsoft Visual Studio10.0\VC\include\crtdefs.h(550): error C2059: syntax error : ','C:\Program Files\Microsoft Visual Studio10.0\VC\include\crtdefs.h(550):error C2059: syntax error : ')'C:\Program Files\Microsoft Visual Studio 10.0\VC\include\excpt.h(56): error C2143: syntax error : missing ')' before 'type'那么这时候需要拷贝F:\Program Files (x86)\Microsoft Visual Studio10.0\VC\include\sal.h,然后覆盖掉F:\WinDDK\7600.16385.1\inc\api\sal .h这样就会导致另外一个问题,Microsoft Visual Studio 10.0\VC\include\sal.h 中include了CodeAnalysis\sourceannotations.h,所以如果在编译环境中调用build,会出现错误找不到 sourceannotations.h,所以要:把 Microsoft Visual Studio10.0\VC\include\CodeAnalysis拷贝到 F:\WinDDK\7600.16385.1\inc \api 下!!下面引用BLOG的一段原文那么这时候需要拷贝F:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\sal.h,然后覆盖掉F:\WinDDK\7600.16385.1\inc\api\sal.h这样就会导致另外一个问题,Microsoft Visual Studio 10.0\VC\include\sal.h 中include了CodeAnalysis\sourceannotations.h,所以如果在编译环境中调用build,会出现错误找不到 sourceannotations.h,所以要:把 Microsoft Visual Studio 10.0\VC\include\CodeAnalysis 拷贝到 F:\WinDDK\7600.16385.1\inc\api 下!!这一下再编译,哈哈,成功了因为VisualDDK支持用IDE调试,所以我就想配置VisualDDK+VMwar7+VS2010来开发驱动。