pSwapChainVT = reinterpret_cast<DWORD_PTR*>(pSwapChain);//拿到虚表指针
printf("pSwapChainVT=%p\n", pSwapChainVT);
pSwapChainVT = reinterpret_cast<DWORD_PTR*>(pSwapChainVT[0]);//拿对象
printf("pSwapChainVT=%p\n", pSwapChainVT);
phookD3D11Present = reinterpret_cast<tD3D11Present>(pSwapChainVT[8]);//拿到这个方法东西 就是Present
printf("phookD3D11Present=%p\n", phookD3D11Present);
// //-------------detours Hook------------------------
DetourRestoreAfterWith();//避免重复HOOK
DetourTransactionBegin();//开始HOOK
DetourUpdateThread(GetCurrentThread());//更新到当前线程
DetourAttach(reinterpret_cast<PVOID*>(&phookD3D11Present), hookD3D11Present);//你要HOOK的函数的函数的地址,以及你自定义的函数的函数地址.
DetourTransactionCommit();//提交HOOK 到此为止 HOOK完成
不知道为什么 就是不执行hookD3D11Present函数 前面的都正常 但是运行到DetourAttach这行时 不会进入到自己定义的hookD3D11Present函数里面