Преобразователь и преобразователь ATL?

Может кто-нибудь объяснить мне, что такое Thunk?

и преобразователь ATL?

Я знаю, что преобразователь имеет какое-то отношение к vtbl и выполнению кода, чтобы найти правильный указатель функции. Я прав?


person Tony The Lion    schedule 25.07.2010    source источник
comment
Вот вопрос переполнения стека о переходниках: /а>. Итак, если не сужаться до вопросов только о преобразователях ATL (например, как преобразователи используются в ATL?), Я думаю, ваш вопрос следует закрыть как обман.   -  person P Shved    schedule 25.07.2010


Ответы (1)


Это общий термин для фрагмента кода адаптера, который коренным образом меняет среду выполнения. Я видел, как он впервые использовался во время перехода с 16-битной на 32-битную Windows, преобразователь использовался, чтобы позволить коду, работающему в 16-битном режиме, вызывать 32-битный код.

Нечто подобное для преобразователей ATL. Он знает, как превратить обратный вызов Windows, чистую среду выполнения C, не имеющую ничего, кроме дескриптора окна, чтобы различать контекст, в вызов виртуального метода для объекта класса. Преобразователь заботится о сопоставлении дескриптора окна с экземпляром класса ATL, который его обертывает, и переводит номер сообщения в соответствующий виртуальный метод.

person Hans Passant    schedule 25.07.2010