C++ 创建Direct3D12设备失败,没有接口

C++ 创建Direct3D12设备失败,没有接口,c++,windows-10,directx-12,C++,Windows 10,Directx 12,我正在尝试创建中指定的D3D12设备 我有一个NVidia 670 gtx、Windows10预览版9926和最后一个10041 Windows sdk 我也有最新的NVidia测试版驱动程序,GeForce报告DirectX12运行时的系统信息 召唤 ID3D12Device* device; HRESULT hr = D3D12CreateDevice(NULL, D3D_DRIVER_TYPE::D3D_DRIVER_TYPE_HARDWARE, D3D12_CR

我正在尝试创建中指定的D3D12设备

我有一个NVidia 670 gtx、Windows10预览版9926和最后一个10041 Windows sdk

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

召唤

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);
返回一个没有接口错误代码的HRESULT

奇怪的呼唤:

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头,它返回相同的错误代码。

您应该始终使用相同的OS和SDK版本,因为API可以在版本之间更改。因为您将SDK用于Build 10041,所以还应该将Windows 10更新为Build 10041。打开设置应用程序,搜索并安装新的Windows 10版本。

您应该始终使用相同的操作系统和SDK版本,因为API可以在版本之间更改。因为您将SDK用于Build 10041,所以还应该将Windows 10更新为Build 10041。打开设置应用程序,搜索新的Windows 10版本并安装它。

更新到Win10 Build 10041,然后重试。啊,对了,忘了Windows更新路径很慢,谢谢,你可以将其作为答案,我会接受。使用Loadlibrary和getprocaddress,只是动态链接到d3d12.dll的方法(在运行时以编程方式)而不是在编译时或运行时初始化时将它们静态地构建到项目中。无论哪种情况,它都会返回e_nointerface,我相信这是因为它不喜欢您发送的参数。请更新到Win10 Build 10041,然后重试。啊,对了,忘了windows更新路径很慢,谢谢,您可以将其作为答案,我会接受。使用Loadlibrary和getprocaddress,只是动态链接到d3d12.dll的方法(在运行时以编程方式)而不是在编译时或运行时初始化时将它们静态地构建到项目中。在这两种情况下,它都返回e_nointerface,我相信这是因为它不喜欢您发送的参数。