对于诸如DOTA 2之类的可以与DX9,DX11,Vulkan等不同图形API一起运行的游戏,我无法提出一种可行的解决方案来检查当前使用的是哪个API。我要执行此操作以正确注入dll以便在游戏上显示图像。
我研究过手动检查游戏加载了哪些dll,
例如,此工具:https://docs.microsoft.com/en-us/sysinternals/downloads/listdlls
但是,对于DOTA,如果在Steam的启动选项中未指定任何库,则它将同时加载d3d9.dll和d3d11.dll库。关于如何确定使用的正确图形API,还有其他想法吗?
在Vulkan中,一种干净的方法是实施Vulkan图层进行覆盖。它比直接注入dll稍微干净。它可以在多个平台上运行。