функция обратного вызова в VC ++ 6.0 - PullRequest
0 голосов
/ 02 апреля 2009

Что такое функция обратного вызова [CALLBACK EXPORT], как она работает, бесконечный цикл или рекурсивный. У меня есть кусок кода в vc ++ 6.0 может любое тело объяснить, как это работает.

timer_result=SetTimer(NULL,1,(t*1000),Timerflow); //say t=2,or t=10,

===

void  CALLBACK EXPORT Timerflow(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime)
{
----
----
}

Ответы [ 2 ]

1 голос
/ 02 апреля 2009

Функция обратного вызова - это функция, которая вызывается извне вашего кода, обычно операционной системой. В приведенном вами примере функция SetTimer просит ОС вызвать ваш обратный вызов по истечении фиксированного времени.

0 голосов
/ 02 апреля 2009

Обратные вызовы, подобные этому, могут использоваться для обеспечения обработки событий на языках, которые не имеют встроенных событий (например, языки .Net).

Вы вызываете функцию settimer, передавая указатель на одну из ваших функций, которая будет вызываться по истечении требуемого времени.

Макрос обратного вызова предназначен для того, чтобы сообщить до 32-битным компиляторам, как передавать аргументы функции между API и вашей функцией, см. Этот фрагмент из этой статьи здесь

Обратные вызовы DLL и почему WINAPI является такой же, как CALLBACK

Возможно позволяют DLL делать звонки обратно в код клиента, который полезен, если вы пишете DLL для реализации функция обратного вызова, или проектирование управляемый событиями интерфейс. Концепция клиент вызывает функцию в DLL, передает DLL указатель на функцию который находится в клиенте, и Функция DLL сделает вызовы обратно в клиент, использующий указатель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...