4

有人可以向我解释一下 Thunk 是什么吗?

和一个 ATL Thunk?

我知道 thunk 与 vtbl 和执行代码以找到正确的函数指针有关。我对吗?

4

1 回答 1

6

它是从根本上改变执行环境的一段适配器代码的通用术语。我看到它在 16 位到 32 位 Windows 转换期间首次使用,一个 thunk 用于允许在 16 位模式下运行的代码调用 32 位代码。

ATL thunk 类似的东西。它知道如何将 Windows 回调(一个只有一个窗口句柄来区分上下文的纯 C 执行环境)转换为对类对象的虚拟方法调用。thunk 负责将窗口句柄映射到包装它的 ATL 类实例,并将消息编号转换为相应的虚拟方法。

于 2010-07-25T14:48:50.757 回答