Может кто-нибудь объяснить мне, что такое Thunk?
и преобразователь ATL?
Я знаю, что преобразователь имеет какое-то отношение к vtbl и выполнению кода, чтобы найти правильный указатель функции. Я прав?
Может кто-нибудь объяснить мне, что такое Thunk?
и преобразователь ATL?
Я знаю, что преобразователь имеет какое-то отношение к vtbl и выполнению кода, чтобы найти правильный указатель функции. Я прав?
Это общий термин для фрагмента кода адаптера, который коренным образом меняет среду выполнения. Я видел, как он впервые использовался во время перехода с 16-битной на 32-битную Windows, преобразователь использовался, чтобы позволить коду, работающему в 16-битном режиме, вызывать 32-битный код.
Нечто подобное для преобразователей ATL. Он знает, как превратить обратный вызов Windows, чистую среду выполнения C, не имеющую ничего, кроме дескриптора окна, чтобы различать контекст, в вызов виртуального метода для объекта класса. Преобразователь заботится о сопоставлении дескриптора окна с экземпляром класса ATL, который его обертывает, и переводит номер сообщения в соответствующий виртуальный метод.