修改ce:
1.获得fpcup64.exe, 随便找一个目录放
2.创建c:\development目录
fpcup64.exe --fpcURL=trunk --lazURL=trunk --fpcrevision=27759 --lazrevision=44997
运行
3.获取fpcbootstrap.zip, 并解压到c:\development\fpcbootstrap中
4.打开命令行, 执行set PATH=c:\development\fpcbootstrap;C:\development\fpcbootstrap\svn;%PATH, 不要关闭命令行
5.在刚才那个命令行中, 执行svn co http://svn.freepascal.org/svn/fpc/trunk@27759 c:\development\fpc (如果中途svn出现问题, 可以切换到c:\development\fpc目录, 执行 1.svn unlock 2.svn update -r27759) 直到完全co出来
6.命令行中切换到第一步放置fpcup64.exe的目录, 在命令行中 运行如下命令: fpcup64 --fpcURL=trunk --lazURL=trunk --fpcrevision=27759 --lazrevision=44997
7.等待命令行显示fpc编译成功就可以ctrl+C 结束fpcup64.exe了.
8.运行Lazarus, 在Tool->Option->Enviroment中 : 修改 Compiler path 为 C:\development\fpc\bin\x86_64-win64\fpc.exe
修改 FPC source directory 为 C:\development\fpc
修改 make path 为 C:\development\fpc\bin\x86_64-win64\make.exe
9.在Lazarus中 Project->Project Option中, 点击最下面的Complier Commander, 在右边的下拉列表中, 选择release 64
驱动签名问题:
重新编译一份,sys
cmd.exe 强制关闭 驱动检测
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
Windows Driver Kit Version 7.1.0
http://www.microsoft.com/en-us/download/details.aspx?id=11800
http://blog.sina.com.cn/s/blog_850b5d3001018yp8.html
Windows 7 64bit + WDK 7600.16385.1 + Visual Studio 此博文包含图片 (2013-05-15 14:23:23)
标签: 驱动 ddk vc win7ddkvs2012 环境 it 分类: 编程
1. 首先安装 Visual Studio 2012 ,WDK 7600.16385.1
Visual Studio 2012 (VS2012_ULT_chs.iso)
http://www.microsoft.com/visualstudio/chs/downloads
WDK 7600.16385.1 (GRMWDK_EN_7600_1.iso)
http://www.microsoft.com/en-us/download/details.aspx?id=11800
请根据自己的情况自行选择版本。
2. 打开 Visual Studio 2012 ,起始页 → 新建项目 → 已安装 → 模板 → Visual C++ → 空项目 → 起个名称 → 确定。(如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
3. 新建项目配置 → 配置管理器 → 名称 “Driver”→ 从此处复制设置选择 “Release”。(如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
4. 解决方案 → 源文件 → 添加 → 新建项 → Visual C++ → C++ 文件(.cpp) → 添加。(如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
5. 属性管理器 → 右键点击“Driver|Win32” → 属性。(如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
6. 通用属性 → 常规 → 目标文件扩展名 → 改为 .sys 。 (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
7. C++ 目录:(X 为你安装 WinDDK 的目录)
可执行文件目录 → X:\WinDDK\7600.16385.1\bin\x86
包含目录 → X:\WinDDK\7600.16385.1\inc
X:\WinDDK\7600.16385.1\inc\ddk
X:\WinDDK\7600.16385.1\inc\api
库目录 → X:\WinDDK\7600.16385.1\lib\win7\i386 (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
8. C/C++ → 常规:
调试信息格式 → 程序数据库 (/Zi) (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
9. C/C++ 预处理器:
预处理器定义 → WIN32=100
_X86_=1
WINVER=0x501
DBG=1 (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
10. C/C++ → 代码生成:
启用 C++ 异常 → 否
基本运行时检查 → 默认值
安全检查 → 否 (/GS-) (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
11. C/C++ → 高级:
调用约定 → __stdcall(/Gz)
编译为 → 编译为 C 代码 (/TC) (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
12. 链接器 → 常规:
输出文件 → $(OutDir)\$(ProjectName).sys
启用增量链接 → 否 (/INCREMENTAL:NO) (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
13. 链接器 → 输入:
附加依赖项 → ntoskrnl.lib
Hal.lib
wdm.lib
wdmsec.lib
wmilib.lib
ndis.lib
MSVCRT.LIB
LIBCMT.LIB
忽略所有默认库 → 是(/NODEFAULTLIB) (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
14. 链接器 → 清单文件:
生成清单 → 否 (/MANIFEST:NO)
启用用户帐户控制(UAC) → 否 (/MANIFESTUAC:NO) (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
15. 链接器 → 系统:
子系统 → 控制台 (/SUBSYSTEM:CONSOLE)
驱动程序 → 驱动程序(/Driver) (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
16. 链接器 → 高级:
入口点 → DriverEntry
基址 → 0X10000
随机基址 → 留空 (不是“是”也不是“否”)
数据执行保护(DEP) → 留空 (不是“是”也不是“否”) (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
17. 属性管理器 → Driver|Win32 → 右键点击 Microsoft.Cpp.Win32.user → 属性 (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
18. VC++ 目录:
包含目录 → X:\WinDDK\7600.16385.1\inc
X:\WinDDK\7600.16385.1\inc\ddk
X:\WinDDK\7600.16385.1\inc\api
库目录 → X:\WinDDK\7600.16385.1\lib\win7\i386 (如下图)
Windows <wbr>7 <wbr>64bit <wbr>+ <wbr>WDK <wbr>7600.16385.1 <wbr>+ <wbr>Visual <wbr>Studio <wbr>
至此,基本配置完毕。
写一段代码如下做测试:
/////////////////////////////////////////////////////////////////////////////
#include "ntddk.h"
NTSTATUS
DriverEntry(PDRIVER_OBJECT driverObject,PUNICODE_STRING RegistryPath)
{
return STATUS_UNSUCCESSFUL;
}
/////////////////////////////////////////////////////////////////////////////
生成如下错误代码:(我的项目文件名用====代替)
1>------ 已启动全部重新生成: 项目: ======, 配置: Driver Win32 ------
1> 源.cpp
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\crtdefs.h(576): error C2143: 语法错误 : 缺少“)”(在“const”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\crtdefs.h(576): error C2143: 语法错误 : 缺少“{”(在“const”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\crtdefs.h(576): error C2059: 语法错误:“,”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\crtdefs.h(576): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(56): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(56): error C2085: “_ExceptionRecord”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(57): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(57): error C2085: “_EstablisherFrame”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(58): error C2085: “_Inout_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(58): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(58): error C2085: “_ContextRecord”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(59): error C2085: “_Inout_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(59): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(60): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(60): error C2085: “_DispatcherContext”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(96): error C2082: 形参“_exception_code”的重定义
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(97): error C2082: 形参“_exception_info”的重定义
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\excpt.h(98): error C2082: 形参“_abnormal_termination”的重定义
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(92): error C2061: 语法错误: 标识符“_Check_return_”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2054: 在“_Check_return_”之后应输入“(”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2085: “_isctype_l”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2085: “_C”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2085: “_In_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2085: “_Type”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2085: “_In_opt_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2146: 语法错误: 缺少“,”(在标识符“_locale_t”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2146: 语法错误: 缺少“,”(在标识符“_Locale”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(94): error C2061: 语法错误: 标识符“_Check_return_”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2086: “int _Check_return_”: 重定义
1> D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93) : 参见“_Check_return_”的声明
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2054: 在“_Check_return_”之后应输入“(”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2085: “_isalpha_l”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2085: “_C”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2085: “_In_opt_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2146: 语法错误: 缺少“,”(在标识符“_locale_t”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2146: 语法错误: 缺少“,”(在标识符“_Locale”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(95): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(96): error C2061: 语法错误: 标识符“_Check_return_”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2086: “int _Check_return_”: 重定义
1> D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93) : 参见“_Check_return_”的声明
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2054: 在“_Check_return_”之后应输入“(”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2085: “_isupper_l”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2085: “_C”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2085: “_In_opt_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2146: 语法错误: 缺少“,”(在标识符“_locale_t”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2146: 语法错误: 缺少“,”(在标识符“_Locale”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(97): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(98): error C2061: 语法错误: 标识符“_Check_return_”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2086: “int _Check_return_”: 重定义
1> D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93) : 参见“_Check_return_”的声明
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2054: 在“_Check_return_”之后应输入“(”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2085: “_islower_l”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2085: “_C”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2085: “_In_opt_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2146: 语法错误: 缺少“,”(在标识符“_locale_t”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2146: 语法错误: 缺少“,”(在标识符“_Locale”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(99): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(100): error C2061: 语法错误: 标识符“_Check_return_”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2086: “int _Check_return_”: 重定义
1> D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93) : 参见“_Check_return_”的声明
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2054: 在“_Check_return_”之后应输入“(”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2085: “_isdigit_l”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2085: “_C”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2085: “_In_opt_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2146: 语法错误: 缺少“,”(在标识符“_locale_t”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2146: 语法错误: 缺少“,”(在标识符“_Locale”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(101): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(102): error C2061: 语法错误: 标识符“_Check_return_”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2086: “int _Check_return_”: 重定义
1> D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93) : 参见“_Check_return_”的声明
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2054: 在“_Check_return_”之后应输入“(”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2085: “_isxdigit_l”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2085: “_C”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2085: “_In_opt_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2146: 语法错误: 缺少“,”(在标识符“_locale_t”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2146: 语法错误: 缺少“,”(在标识符“_Locale”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(103): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(104): error C2061: 语法错误: 标识符“_Check_return_”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2086: “int _Check_return_”: 重定义
1> D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93) : 参见“_Check_return_”的声明
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2054: 在“_Check_return_”之后应输入“(”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2085: “_isspace_l”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2085: “_C”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2085: “_In_opt_”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2146: 语法错误: 缺少“,”(在标识符“_locale_t”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2146: 语法错误: 缺少“,”(在标识符“_Locale”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(105): error C2059: 语法错误:“)”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(106): error C2061: 语法错误: 标识符“_Check_return_”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(107): error C2086: “int _Check_return_”: 重定义
1> D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(93) : 参见“_Check_return_”的声明
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(107): error C2054: 在“_Check_return_”之后应输入“(”
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(107): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(107): error C2085: “_ispunct_l”: 不在形参表中
1>D:\Program Files\Microsoft Visual Studio 11.0\VC\include\ctype.h(107): fatal error C1003: 错误计数超过 100;正在停止编译
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
解决方法:
复制 Visual Studio 2012 安装目录\Microsoft Visual Studio 10.0\VC\include\ 下面的 sal.h
然后覆盖 WinDD 安装目录 \WinDDK\7600.16385.1\inc\api\ 下面的 sal.h
覆盖之前最好备份
再次生成 (我的项目文件名用====代替,用户名用-----代替)
1>------ 已启动全部重新生成: 项目: ========, 配置: Driver Win32 ------
1> 源.cpp
1>e:\winddk\7600.16385.1\inc\api\sal_supp.h(57): warning C4005: “__useHeader”: 宏重定义
1> E:\WinDDK\7600.16385.1\inc\api\sal.h(2864) : 参见“__useHeader”的前一个定义
1>e:\winddk\7600.16385.1\inc\api\specstrings_supp.h(77): warning C4005: “__on_failure”: 宏重定义
1> E:\WinDDK\7600.16385.1\inc\api\sal.h(2865) : 参见“__on_failure”的前一个定义
1> 正在生成代码
1> 已完成代码的生成
1> ======.vcxproj -> c:\users\----\documents\visual studio 2012\Projects\======\Driver\=====.sys
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
看错误代码,是 宏重定义 ,所以用文本编辑器 (例如:NotePad++)打开 X:\WinDDK\7600.16385.1\inc\api\sal.h (X 为你的 DDK 安装盘),找到第2864 2865 行,删除这两行,保存退出,重新生成
1>------ 已启动全部重新生成: 项目: ======, 配置: Driver Win32 ------
1> 源.cpp
1> 正在生成代码
1> 已完成代码的生成
1> =====.vcxproj -> c:\users\------\documents\visual studio 2012\Projects\=====\Driver\=====.sys
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
OVER!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课