如何解决DirectX12:创建 IDXGIFactory 时 dxgi dll 灾难性失败
我正在尝试使用 CreateFactory2
函数初始化 IDXGIFactory4,但这会引发错误:
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(121)\dxgi.dll!00007FFBA0D6D7F8: (caller: 00007FFBA0D4D167) ReturnHr(1) tid(64d0FFFFastrophic failure) onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(98)\dxgi.dll!00007FFBA0D6D4D0: (caller: 00007FFBA0D3E221) ReturnHr(2) tid(64d8) 80000 onecore\windows\directx\database\helperlibrary\lib\directxdatabasehelper.cpp(999)\dxgi.dll!00007FFBA0D6D4FC: (caller: 00007FFBA0D3E221) ReturnHr(3) tid(64d8) 80000FF
我在网上没有发现任何类似的错误信息。 我尝试单独运行该函数并初始化为不同的 IDXGIFactory(例如 IDXGIFactory2),但两者仍然导致相同的问题。
ComPtr<IDXGIFactory> dxgiFactory;
UINT factoryFlags = DXGI_CREATE_FACTORY_DEBUG;
ThrowIfFailed(CreateDXGIFactory2(factoryFlags,IID_PPV_ARGS(&dxgiFactory)));
解决方法
这不是您描述的错误。
没有真正的失败,没有灾难,甚至没有异常,也没有从 API 调用返回给您的错误代码。您所看到的是内部 API 实现中的一个小故障,它使用这些奇怪的行发出调试输出。显然,这是微软 API 实现中的一个小问题,并且消息的奇怪格式表明它来自在一个模块中使用 wil
:他们可能打算从软件的发布版本中删除此输出,但不知何故它起作用了以不同的方式输出,意外的调试输出通过...
该消息很可能对应于可恢复的内部错误条件,然后会对其进行处理,并且您的 API 调用最终会成功。没什么可担心的,微软只是让事情变得更干净。
,即使使用 Visual Studio 2019 (v16.9.1) 中直接来自模板(或来自 Microsoft Github 存储库的示例应用)的任何空白应用,也会发生这些错误。只是烦人,应用程序永远不会崩溃或挂起。然而,这以前从未发生过。
我希望微软尽快解决这个问题(这对神经和心理健康有害)。你对此无能为力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。