Поделиться через


Функции обратного вызова

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

Чтобы вызвать большинство функций DLL из управляемого кода, создайте управляемое определение функции, а затем вызовите ее. Процесс прост.

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

Следующая иллюстрация подытоживает функцию обратного вызова и шаги реализации.

Схема, показывающая процесс обратного вызова платформы.

Функции обратного вызова идеально подходят для использования в ситуациях, когда задача выполняется многократно. Другое распространенное использование заключается в функциях перечисления, таких как EnumFontFamilies, EnumPrinters и EnumWindows в API Windows. Функция EnumWindows перечисляет все существующие окна на компьютере, вызывая функцию обратного вызова для выполнения задачи в каждом окне. Инструкции и пример см. в статье "Практическое руководство. Реализация функций обратного вызова".

См. также