Как выполнить функцию Javascript в C++
Пожалуйста, скажите мне, как включить файл заголовка JavaScript или функцию JavaScript в коде C++. Код C++ написан на Linux(UBUNTU)?
Хотя мне нужно выполнить только вышеуказанное действие, но позвольте мне рассказать вам о моей цели, поскольку я собираюсь реализовать операцию CTI (Computer Telephony Integration).
(Помощь будет оценена) Большое спасибо заранее
4 ответа
Вызов скриптовых функций из C++
http://clipp.sourceforge.net/Tutorial/back_calling.html
JavaScript-вызовы из C++ - CodeGuru
http://www.codeguru.com/cpp/i-n/ieprogram/article.php/c4399/JavaScript-Calls-from-C.htm
Вызов JavaScript из C++ - CodeProject
http://www.codeproject.com/KB/COM/jscalls.aspx
вызов JavaScript из кода C++ - ответы JavaScript / Ajax / DHTML
http://bytes.com/topic/javascript/answers/759793-calling-javascript-c-code
Попробуйте все вышеперечисленное.
Возможно, вы захотите перенести JS на C++; это должно быть довольно простой задачей, так как два языка в меру похожи.
Простое портирование функциональности, вероятно, будет намного проще, чем попытка использовать библиотеку синтаксического анализа JS, и, вероятно, менее подвержено ошибкам.
JavaScript не является компилируемым языком, и он, ни на что не похож, не совместим с C++, поэтому #include
нет возможности импортировать код JavaScript. На самом деле, понятие заголовочного файла даже не существует в JavaScript.
Существует несколько механизмов JavaScript, которые можно интегрировать в скомпилированный язык, в том числе:
- SpiderMonkey проекта Mozilla.
- Google Chrome V8.
- Целая куча других.
Подробное руководство по встраиванию JS в C++ с помощью движка Mozilla SpiderMonkey можно найти здесь. По сути, вам нужно включить jsapi.h, создать / настроить / очистить движок JS, как описано в учебнике (заполнение сценария char* вашим строковым литералом исходного кода JS). и передачи результирующего массива символов в JS_EvaluateScript), а затем добавьте ссылку на библиотеку SpiderMonkey при создании исполняемого файла для вашей системы. Обратите внимание, что в этом руководстве объясняется, как вызывать функции C из JS и как вызывать конкретные функции JS из C, что также интересно и, возможно, более подходит для ситуации OP.