问题描述
我正在尝试使用 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 存储库的示例应用)的任何空白应用,也会发生这些错误。只是烦人,应用程序永远不会崩溃或挂起。然而,这以前从未发生过。
我希望微软尽快解决这个问题(这对神经和心理健康有害)。你对此无能为力。