IDXGIFactory2::CreateSwapChainForHwnd 失败

IDXGIFactory2::CreateSwapChainForHwnd fails

https://1drv.ms/u/s!AkVRV9eGJ20rgTu13uTcNkhp0eZb?e=lwMe70

该链接会将您带到我的 OneDrive,您可以在其中下载我的 Visual Studio 2022 解决方案和项目(它是一个 17.7KB 的 .7z 文件),它只有显示 win32 的代码 window 还有一点。我还提供了一张图片,告诉您 DirectX 诊断工具报告的我的 DirectX 规格。图片是下图:

问题如标题所述,我想让你看看你是否可以毫无问题地编译它,我担心它可能会失败,因为我不能使用 Direct3D 11.1(Direct3D 11.1 是必需的吗?我找不到有关它的信息),但后来我尝试使用 D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY 创建标志(https://docs.microsoft.com/en-us/windows/win32/api/d3d11/ne-d3d11-d3d11_create_device_flag)创建 D3D 设备,只是为了测试我是否可以使用 Direct3D 11.1(因为不支持该标志直到 Direct3D 11.1) 并且创建成功...所以我不知道了...

当您使用 DirectX 编程时,请确保您始终 在开发中启用“调试层”并检查 Visual Studio 的“输出”[=21] 中的输出=](或其他调试器输出)。

检查这些链接:Using the debug layer to debug apps and Direct3D SDK Debug Layer Tricks 了解更多信息,因为它的安装方式随着 DirectX 版本和年份的不同而发生了变化...

这会告诉你失败的原因:

Alpha blended swapchains must be created with CreateSwapChainForComposition, or CreateSwapChainForCoreWindow with the DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER flag.