【发布时间】:2019-11-28 08:46:31
【问题描述】:
我需要一个使用 Microsoft Detours 的项目的帮助。
前提:我正在尝试使用我在 project on CodeProject 中找到的使用 Detours 库的类。我从 Github 下载了最新版的 Detuors 并重新编译,但是找不到宏 DETOUR_TRAMPOLINE 的定义。我想在新版本的 Detours 中它已经以某种方式被替换了。
在使用这个缺失宏的项目中,它是这样使用的:
DETOUR_TRAMPOLINE(BOOL WINAPI Detour_EnableScrollBar(HWND hwnd, int wSBflags, UINT wArrows), EnableScrollBar);
DETOUR_TRAMPOLINE(BOOL WINAPI Detour_GetScrollInfo (HWND hwnd, int fnBar, LPSCROLLINFO lpsi), GetScrollInfo);
DETOUR_TRAMPOLINE(int WINAPI Detour_GetScrollPos (HWND hwnd, int nBar), GetScrollPos);
DETOUR_TRAMPOLINE(BOOL WINAPI Detour_GetScrollRange (HWND hwnd, int nBar, LPINT lpMinPos, LPINT lpMaxPos), GetScrollRange);
DETOUR_TRAMPOLINE(int WINAPI Detour_SetScrollInfo (HWND hwnd, int fnBar, LPSCROLLINFO lpsi, BOOL fRedraw), SetScrollInfo);
DETOUR_TRAMPOLINE(int WINAPI Detour_SetScrollPos (HWND hwnd, int nBar, int nPos, BOOL fRedraw), SetScrollPos);
DETOUR_TRAMPOLINE(int WINAPI Detour_SetScrollRange (HWND hwnd, int nBar, int nMinPos, int nMaxPos, BOOL fRedraw), SetScrollRange);
DETOUR_TRAMPOLINE(BOOL WINAPI Detour_ShowScrollBar (HWND hwnd, int wBar, BOOL fShow), ShowScrollBar);
问题:
- 新版Detours有没有办法达到和老宏一样的效果?
- 如果不是要求太多,我能否请教您一些建议,如何重写我上面报告的代码以与新方法兼容?
提前感谢您的帮助!
【问题讨论】:
-
大声笑,我在微软 GitHub 页面的搜索框中输入了“DETOUR_TRAMPOLINE”,GitHub 回复:“哇哦!你触发了滥用检测机制。请稍等几分钟再试一次; 在某些情况下,这可能需要一个小时。”:P
-
我在宏上做了一些谷歌搜索,似乎宏在 v1.5 的弯路中......而他们现在在 >v4.. 不能保证只重写代码你显示将解决问题。您可能需要使用它设计的 detours 版本来运行您的代码......或者在很大程度上重写它。
-
@JHBonarius 我担心是这样......谢谢你的帮助!