170 похожих чатов

Есть здесь те кто разобрался с Node addon (сишные расширения)???

Пытаюсь передать в расширение ссылку на функцию(колбэк) одной функцией, а из другой эту "запомненную" функцию вызвать (аналог addEventListener). Ни одного работающего примера не нашел в документации по этому. Нашел примеры под старое АПИ. Под новое могу передать функцию и тут-же ее несколько раз вызвать. Но не "сохранить на потом". Может хоть что ни-будь посоветуете???

4 ответов

31 просмотр

Показывай код

Andriy-F Автор вопроса
Stanislav Bobokalo
Показывай код

код не работает! За основу брал это: https://nodejs.org/api/addons.html#callbacks в примере функция JS передает в аддон свою функцию и тут-же получает ее вызов со строкой в параметрах. Судя по всему (С++ знаю "со словарем") Local<Function> cb = Local<Function>::Cast(args[0]); это получение колбэка из параметров. А это cb->Call(context, Null(isolate), argc, argv).ToLocalChecked(); - вызов ее с параметрами. Пробовал сохранить ее во внешнюю переменную (вынес Local<Function> cb за пределы функции), но при попытке вызвать ее из другой функции получаю "гухой сбой" - "функции 2(которой пытаюсь вызвать колбэк) НЕ СУЩЕСТВУЕТ". Причем получаю это на уровне JS - Си вообще никаких ошибок не выдает.

Andriy-F Автор вопроса
Andriy F
код не работает! За основу брал это: https://nodej...

Не понял что такое isolate + context, поэтому пробовал и их вынести/сохранить.. (или использовать "новую") - результат один - вылетает ошибка "функции test2 не существует/найдена"

Andriy F
Не понял что такое isolate + context, поэтому про...

А как ты функцию в аддон передаёшь? В примере всего 1 функция, которая сразу и вызывает коллбэк. Тебе, я так понял, надо одной функцией запомнить на стороне C++ коллбэк, другой функцией его вызвать

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта