Как отключить оптимизацию предупреждений в вебпаке 2

Функция обратного вызова C, написанная на C ++, должна быть объявлена ​​как функция extern "C" - поэтому использование функтора напрямую отсутствует. Вам нужно будет написать какую-то функцию обертки для использования в качестве этого обратного вызова, и эта оболочка вызовет функтор. Конечно, протокол обратного вызова должен иметь некоторый способ передачи контекста функции, чтобы он мог добраться до функтора, или задача становится довольно сложной. Большинство схем обратного вызова имеют способ передать контекст, но я работал с некоторыми мертвыми мозгами, которые этого не делают.

См. Этот ответ для получения более подробной информации (и посмотрите в комментариях для анекдотических доказательств того, что обратный вызов должен быть extern "C", а не только статической функцией-членом):

16
задан Velidan 15 December 2016 в 10:16
поделиться