关于 UE4 (虚幻引擎4) 4.25.1版本提示“无法定位程序输入点 DXGIGetDebugInterface1 于动态链接库dxgi.dll上”的错误的解决办法:
1、原因:使用关键词DXGIGetDebugInterface1进行搜索,可以找到微软官方的API说明,https://docs.microsoft.com/zh-tw/windows/win32/api/dxgi1_3/nf-dxgi1_3-dxgigetdebuginterface1?redirectedfrom=MSDN 通过该API文档可以发现DXGIGetDebugInterface1 函数只支持win8.1以上的系统。
Remarks
The DXGIGetDebugInterface1 function returns E_NOINTERFACE on systems without the Windows Software Development Kit (SDK) installed, because it's a development-time aid.
Requirements
Minimum supported client | Windows 8.1 [desktop apps only] |
Minimum supported server | Windows Server 2012 R2 [desktop apps only] |
Target Platform | Windows |
Header | dxgi1_3.h |
Library | DXGI.lib |
DLL | Dxgi.dll |
2、解决办法:
办法1:找到Engine\Binaries\ThirdParty\NVIDIA\NVaftermath\Win64\GFSDK_Aftermath_Lib.x64.dll这个文件(或者直接搜索这个文件),用UE4 4.24版本的同名的dll替换它即可。如果手头上已经没有4.24版本的GFSDK_Aftermath_Lib.x64.dll文件了(其实只要是4.25.1之前不管哪个版本的这个dll都是可以的),我这里提供了个下载,是UE4 4.24.3版本里面带的,我特意下载了UE4 4.24.3来找的这个DLL。下载地址:https://download.youkuaiyun.com/download/zhllxt/12563805 注意:我发布资源时积分填的是0,但是优快云会自动修改积分,修改成多少也不知道,我也没办法,大家看着下吧。优快云把我提交的资源全部修改了积分,我曾经手动全部改成了0分,但是过了一段时间后,发现积分又被优快云全改了,我也很无奈。
办法2:如果是用源码版本编译的,先修改Engine\Source\ThirdParty\NVIDIA\NVaftermath\NVaftermath.Build.cs这个文件,直接将PublicDefinitions.Add("NV_AFTERMATH=1");改为PublicDefinitions.Add("NV_AFTERMATH=0");即可。
这个解决办法我是在UE4官方找到的:https://answers.unrealengine.com/questions/958445/view.html 我用的是办法1,的确可以解决问题。办法2,我没有试过。