解决方案:
可以手动安装目录packages\Patch 下根据 *** 作系统32,64 位系统安装对应的补丁:
安装完成补丁KB2999226,就可以正常的安装Visual Studio 2015
失败条件1:
Windows NT版本为6.3,且WindowsBuildNumber <9600,则不能安装。NT6.3是指windows 8.1系统或Windows Server 2012 R2,6.x是内核版本。如果是这个 *** 作系统版本,且build版本号低于9600,则不能安装。
失败条件2:
兼容模式未开启,如果系统不是最新系统,则需要开启兼容模式,否则无法安装。
失败条件3:
*** 作系统是Win7以上版本,或者是Win7版本并且SP包大于等于1的其他情况,则无法安装。这个表示,如果是Win7,则必须安装SP1及以上版本的补丁包。如果你的Win7没有安装补丁包,请先安装,否则无法安装VS2015.如果是更高版本的 *** 作系统,那么就不存在这个问题。
失败条件4:
IE不存在或者IE版本小于10,则无法安装。如果你在Win7上安装IE11,也是需要先安装SP1包。
所以Win7安装VS2015失败的最终的解决方案如下:
1.安装SP补丁包。
2、升级IE位IE10或者IE11
VS不同版本不会冲突:
我的win7刚装好2015,vs版本是不会冲突的,我的电脑上安装着2010,2013,2014,2015。
你的问题比较笼统,不知道是怎样的需求。我把我的经验全都贴出来,楼主挑自己感兴趣的吧。一、源代码编译
在微软官网上下载 WDK 开发包,里面有 WDK 编译器,链接器,配置工具,如NMAKE。然后,用记事本写 C 或 C++ 文件,编译,链接就 OK 了。
WDK 库是一定要的,否则头文件,导入库都没有,就无法编译了。至于编译器和连接器,其实就是普通的 cl.exe 和 link.exe 两个工具,和 VS 中的 VC 编译链接器是同一个。
编译的方法是:
在自己的目录如 c:\wdkdemo 中有个待编译的 wdkdemo.c ,那么需要在这个目录里加入两个文件,一个是 makefile (无后缀名)的固定文件名,内容也是固定的:
INCLUDE $(NTMAKEENV)\makefile.def
另外一个文件是 sources (无后缀名)的固定文件名,内容为:
targettype=driver
targetname=obj
sources=wdkdemo.c
这两个文件都是让nmake 工具配置用的,最终调用合适的编译器和链接器开关来编译出 sys 。
WDK包有个 build 命令行工具,当配置好了以上两个文件后。双击 build 工具,进入到 c:\wdkdemo 目录,输入命令 build 回车,然后只要 wdkdemo.c 源代码正确,就会生成 sys 文件了。
二、sys 文件安装:
在网上下载个免费的驱动安装工具,这个不难吧,一般调试用的驱动,建议在安装的时候,千万记得要选择手动模式,因为自启动模式,如果驱动有BUG ,会导致蓝屏,重启机器后,驱动因自启动又被加载,导致再次蓝屏。
三、调试
在微软官网下个 windbg ,但 windbg 需要调试机和被调试机模式,因此 windbg 最好配合 vmware 来使用。
我感觉,sys 文件编译是很麻烦的。不如编译应用程序,只要一个 VS 可以搞定大部分的事情。驱动开发需要很多关于其他工具的知识。譬如,用记事本或者NOTEPAD++编辑源代码感觉很吃力,因为 VS 没有驱动开发的项目,因此 VS 不直接支持驱动开发,当然,可以进行配置,但 VS 配置驱动是很麻烦的。另外, windbg 有很多的调试命令,当然常规的命令一般4、5个就够用了。VMWARE 的配置也是很麻烦的,当初,我自己研究了很长时间,网上虽然有教程,但都是讲得不全面,譬如要配置10个地方,网上都是只说7、8个,导致 VMWARE 配置不成功。
驱动开发还有 DRIVER STUDIO 这么一个 IDE 可以使用,另外还有 IRPTRACE ,DEVICE TREE , DEBUG VIEWER 等工具。
我开发驱动的工具是 VMWARE + VS2010 + WDK + WINDBG + WINOBJ + IRPTRACE + DEBUG VIEWER 这几个。
追问
我就是想把WDK和visual studio合在一起开发,在记事本上太吃力了,每一个字都需要自己写,这样的话不就退化到好几年之前了嘛--现在做一个小东西也需要几千的代码,这样会累死的,就像这样我的在visual studio 2008里面已经有这样的了,但是编译不出 .sys文件,我自己写的代码也不行,别人写的(网上下的)也编译不出来 你看看是什么情况,图上的是我自己机子上我搞的(原本没有)
追答
原来是这个呀。
首先,新建一个WIN32控制台工程,选择空项目。然后新建一个.cpp文件。接下去所有的项目属性不要修改,需要修改的地方如下,至于有些修改的含义,就不多说了,一说又一大堆。
VS 中配置 WDK 选项:
(假定 WDK 安装目录为 C:\WinDDK\7600.16385.1,这个是我机器上的配置)
一、C/C++
1.常规
*附加包含目录:编辑添加3个路径,分别对应WDK安装目录\INC子目录中的三个目录:crt,api,ddk。最终在附加包含目录的内容为:C:\WinDDK\7600.16385.1\inc\apiC:\WinDDK\7600.16385.1\inc\ddkC:\WinDDK\7600.16385.1\inc\crt
调试信息格式:C7兼容 /Z7
2.预处理器
*WIN32DBG_X86_WINVER=0x0501
3.代码生成
*启用最小重新生成:否
*基本运行时检查:默认值
运行库:多线程调试(/MTd)
*缓冲区安全检查:否(/GS-)
4.高级
调用约定:__stdcall (/Gz)
二、链接器
1.常规
输出文件:$(OutDir)\$(ProjectName).sys
*启用增量链接:否(/INCREMENTAL:NO)
附加库目录:编辑添加1个路径,对应WDK安装目录\LIB\WXP\I386,最终的附加库目录的内容为:C:\WinDDK\7600.16385.1\lib\wxp\i386。注意,如果是WIN7系统,子目录把 WXP 改成WIN7
2.输入
*附加依赖项:ntoskrnl.lib
*忽略所有默认库:是(/NODEFAULTLIB)
3.清单文件
清单文件:否
4.系统
子系统:本机(/SUBSYSTEM:NATIVE)
*驱动程序:驱动程序(/DRIVER)。注意,如果是WDM类型驱动,改成 WDM (/DRIVER:WDM)。
5.高级
入口点:DriverEntry
随机地址:默认值
数据执行保护(DEP):默认值
以上带 * 的意识为,内容可以根据项目的具体分化,可以有所变动。当然啦,变动,肯定是基于你对该选项的理解基础上进行变更的。譬如附加依赖项一般需要ntoskrnl.lib ,如果使用了第三方库里的函数,那需要再添加其他的 lib 库。譬如想启用缓冲区安全检查,那除了开关设置意外,必须
在附加依赖项开关加上 bufferoverflowU.lib 这个库,因为安全检查函数由 bufferoverflowU.lib 导出。
更正下我第一次的回答:
sources (无后缀名)的固定文件名,内容为:
targettype=driver
targetname=obj
sources=wdkdemo.cpp
更正为:
targettype=driver
targetname=wdkdemo
targetpath=obj
sources=wdkdemo.cpp
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)