Dll注入覆盖DirectX版本
Dll injection overlay DirectX version
我正在制作全屏DirectX游戏的截图应用程序。但是有一个问题——每个版本的DirectX都有自己的截图方式(据我所知)。
所以问题是如何确定DirectX版本的应用程序,我注入我的DLL从这个DLL?
在我的DirectX钩子中确定实际DirectX版本的一个简单技巧是为每个dx dll调用GetModuleHandle。例如:
HINSTANCE hD3D11 = GetModuleHandle(TEXT("D3D11.DLL"));
if (hD3D11)
{
// DirectX 11 dll is loaded, so we can hook D3D11CreateDeviceAndSwapChain and/or D3D11CreateDevice
}
D3D10.dll和D3D9.dll相同或相似。我认为最好的方法是按以下顺序尝试GetModuleHandle: d3d11.dll, d3d10.dll和d3d9.dll。这种方法对我创建的DX挂钩很有效。我希望它对你也有用,或者你必须根据你的目的调整它。当然,你应该首先注入上面检查DX版本的代码,然后根据版本决定注入哪个DXhook dll。
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 导入库可以跨dll版本工作吗
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 在clang++预处理器中确定gcc工具链版本
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 不同的Visual Studio版本中缺少.dll
- 如何在directx/c++中进行平移/缩放操作
- 用符号版本替换对函数的所有调用
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 我需要分发哪些版本的可再分发文件
- DrawIndexedInstanced 具有不同的 Index Count per Instance (Directx
- CV_OCL_RUN宏如何在OpenCV(版本3.4.5)的goodFeaturesToTrack实现中工作?
- 在运行时读取 libstdc++ 版本
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- 为什么在 XAudio2 的 DirectX 版本中调用 OnCriticalError
- DirectX多个DLL版本
- Dll注入覆盖DirectX版本
- C++directx的哪个版本