首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用D3D12Device调用D3D12Device的E_NOINTERFACE失败

用D3D12Device调用D3D12Device的E_NOINTERFACE失败
EN

Stack Overflow用户
提问于 2016-10-20 22:54:16
回答 1查看 1.4K关注 0票数 2

我一直在尝试开发一个利用桌面复制api的应用程序,但是没有使用directx的经验,结果证明这是一个相当大的挑战。一切似乎都正常,直到我调用output1->DuplicateOutput()时,它才返回E_NOINTERFACE。msdn文档中没有定义此错误,因此我在诊断问题时遇到了问题。我认为这个代码应该可以工作,但我肯定遗漏了一些东西。

代码语言:javascript
运行
复制
#include <windows.h>
#include <d3d12.h>
#include <dxgi1_5.h>

int main()
{
    HRESULT hr;
    ID3D12Debug *debug;
    hr = D3D12GetDebugInterface(IID_PPV_ARGS(&debug));
    debug->EnableDebugLayer();
    IDXGIFactory1 *factory;
    hr = CreateDXGIFactory1(IID_PPV_ARGS(&factory));
    IDXGIAdapter1 *adapter;
    hr = factory->EnumAdapters1(0, &adapter);
    factory->Release();
    IDXGIOutput *junkput;
    hr = adapter->EnumOutputs(0, &junkput);
    IDXGIOutput1 *output1;
    hr = junkput->QueryInterface(IID_PPV_ARGS(&output1));
    junkput->Release();
    ID3D12Device *device;
    hr = D3D12CreateDevice(adapter, D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&device));
    IDXGIOutputDuplication *dupl;
    hr = output1->DuplicateOutput(device, &dupl);
    return 0;
}

在我的调试窗口中,我注意到当我调用_com_errors时,我得到了两个output1->DuplicateOutput

更新:

我缩小了问题的范围,因为我使用的是ID3D12Device而不是ID3D11Device。如下所示,该代码可以工作:

代码语言:javascript
运行
复制
ID3D11Device *device;
D3D_FEATURE_LEVEL reallevel;
ID3D11DeviceContext *context;
hr = D3D11CreateDevice(adapter, D3D_DRIVER_TYPE_UNKNOWN, nullptr, NULL, featurelevels, ARRAYSIZE(featurelevels), D3D11_SDK_VERSION, &device, &reallevel, &context);
IDXGIOutputDuplication *dupl;
hr = output1->DuplicateOutput(device, &dupl);

我不明白的是为什么这是个问题。桌面复制api不与directx 12兼容吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-27 21:56:25

DXGI DuplicateOutput目前还不支持DirectX 12设备。由于您没有使用DirectX的经验,所以无论如何您应该使用DirectX 11。DirectX 12是为假定已经对DirectX 11非常熟悉的图形专家设计的API。

请注意,D3D11On12CreateDevice设备应该与DXGI DuplicateOutput一起工作,但我自己还没有尝试过。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40165786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档