IDXGIFactory4::CreateSwapChain returns DXGI_ERROR_INVALID_CALL

IDXGIFactory4::CreateSwapChain returns DXGI_ERROR_INVALID_CALL

我正在这样创建我的交换链

ComPtr<IDXGIFactory4> factory;
CreateDXGIFactory1(__uuidof(IDXGIFactory4), (void**)&factory);

DXGI_SWAP_CHAIN_DESC scd;
ZeroMemory(&scd, sizeof(DXGI_SWAP_CHAIN_DESC));
scd.BufferCount = 2;
scd.BufferDesc.Width = mWidth;
scd.BufferDesc.Height = mHeight;
scd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
scd.OutputWindow = mHwnd;
scd.Windowed = true;
scd.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
scd.SampleDesc.Count = 1;
scd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;

ComPtr<IDXGISwapChain> swapchain;
factory->CreateSwapChain(mQueue.Get(), &scd, &swapchain);

在调试模式下,这工作正常,但在发行版(x86 或 x64)中,CreateSwapChain returns DXGI_ERROR_INVALID_CALL.

任何人都可以向我解释为什么这在 Debug 模式下有效,但在 Release 模式下无效吗?

谢谢!

注意:我使用的是 Direct3D 12

我找到了解决办法!耶:)

我忘了 link DX12 库....