visual-studio - 为什么用 Visual Studio 构建驱动程序是 "Bad"?

Microsoft Visual Studio 的链接器有 a /DRIVER flag专门用于构建驱动程序:

Use the /DRIVER linker option to build a Windows NT kernel mode driver.

但是,Microsoft says :

You must not build drivers by using the compiler or linker that Microsoft Visual Studio provides.

这引出了问题:

为什么我不应该用 Visual Studio 编译/链接驱动程序?

DDK/WDK工具生成的输出和Visual Studio生成的输出有区别吗?
如果有,有什么不同?


编辑:

注意我说的是使用 Visual Studio 的编译器链接器不是库! p>

我将 WDK 头文件和库与 VS 的编译器和链接器一起使用,但微软特别说我需要避免这种情况:

You must not build drivers by using the compiler or linker that Microsoft Visual Studio provides.

他们甚至没有提及头文件和库,所以这当然不是我的问题。

为什么?

最佳答案

This article让我走上正轨,我想。这是因为 DDK 工具使用的运行时库与 Visual Studio 不同。

Visual Studio 会将驱动程序与其提供的运行时库(或可选地,安装在系统上的最新版本的运行时库)链接起来,但可以说驱动程序应该与用于构建操作系统本身的运行时完全相同.

关于visual-studio - 为什么用 Visual Studio 构建驱动程序是 "Bad"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6241917/

相关文章:

git - 您是否应该将已编译的 Assets checkin Git?

xcode - 如何将构建阶段复制到 Xcode 中的另一个目标?

java - 在 Play 上使用 Clover 执行代码覆盖!使用 Ant 的框架应用程序

build - 为什么 Gradle 不在编译/运行时类路径中包含传递依赖项?

javascript - 如何使用 npm 脚本将 typescript 编译成 javascrip

deployment - 什么/为什么 WinRT 随机创建新的干净布局

iphone - 什么是 "Couldn' t 打开共享功能内存 GSCapabilities (没

javascript - 减少 React/MERN Stack Bundle 的大小 - 主要是删

java - 切换到 Java 7 时构建时间显着增加

list - 如何以编程方式列出执行 MSBuild 时定义的所有属性?