C++ 在 Windows Vista 下使用 d3d11

C++ use d3d11 under Windows Vista

如果我应该使用 Windows kit 10、d3d11.h、d3d11.lib(静态库)中的某些类型并在 Toolset v90(Visual studio 2008) 下编译。如果 .exe 文件将在没有任何 d3d11.h 迹象的 Windows Vista 下启动,会发生什么情况?它会抛出未解决的外部异常?

如果您使用预期随操作系统分发的 shared/dynamic 库编译项目,然后尝试在不同的操作系统上 运行 它,它很可能会崩溃或根本不会启动,因为 missing/mismatched 共享 libraries/dlls。

另请注意,未解决的外部问题是 link 时间错误,而不是异常。

d3d11.lib 是导入库。 d3d11.h 在 运行 时不相关(headers 仅由编译器使用),以及 "unresolved externals"(这是链接器错误)。如果未安装 DirectX 11,则应用程序将无法启动,因为缺少 dll 依赖项。作为平台更新的一部分,DirectX11 可用于 Windows Vista,请参阅 How to install DirectX 11 on Windows Vista 所以可执行文件应该能够 运行 没问题。