首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Direct3D12创建E_NoInterface设备失败

使用Direct3D12创建E_NoInterface设备失败
EN

Stack Overflow用户
提问于 2015-03-28 12:49:18
回答 1查看 1.2K关注 0票数 0

我正在尝试创建一个D3D12设备,如

https://msdn.microsoft.com/en-us/library/dn899120%28v=vs.85%29.aspx

我有一个NVidia 670 gtx,Windows 10预览构建9926,最后10041 windows。

我还有最新的NVidia测试版驱动程序,GeForce的系统信息报告了DirectX12运行时。

呼叫

代码语言:javascript
复制
ID3D12Device* device;
    HRESULT hr = D3D12CreateDevice(NULL, D3D_DRIVER_TYPE::D3D_DRIVER_TYPE_HARDWARE,
        D3D12_CREATE_DEVICE_FLAG::D3D12_CREATE_DEVICE_NONE,
        D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_0, D3D12_SDK_VERSION, __uuidof(ID3D12Device), (void**)&device);

返回一个带有非NOINTERFACE错误代码的HRESULT

奇怪的叫法:

代码语言:javascript
复制
ID3D12Object* device;
    HRESULT hr = D3D12CreateDevice(NULL, D3D_DRIVER_TYPE::D3D_DRIVER_TYPE_HARDWARE,
        D3D12_CREATE_DEVICE_FLAG::D3D12_CREATE_DEVICE_NONE,
        D3D_FEATURE_LEVEL::D3D_FEATURE_LEVEL_11_0, D3D12_SDK_VERSION, __uuidof(ID3D12Object), (void**)&device);

返回一个有效的对象,但我无法使用QueryInterface获得一个有效的设备对象。

请注意,我已经尝试使用LoadLibrary/GetProcAddress,而不是使用d3d12头,后者返回相同的错误代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-29 06:22:07

您应该始终使用相同的OS和SDK构建,因为API可以在不同版本之间进行更改。因为您对生成10041使用SDK,所以还应该将Windows10更新为Build 10041。打开Settings应用程序,搜索一个新的Windows 10生成并安装它。

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

https://stackoverflow.com/questions/29317356

复制
相关文章

相似问题

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