Как выполнить функцию Javascript в C++

Подскажите, пожалуйста, как включить заголовочный файл javascript или функцию javascript в код C++. Код C++ написан в Linux (UBUNTU)?

Хотя мне нужно выполнить только вышеуказанное действие, но позвольте мне рассказать вам о моей цели, поскольку я намереваюсь реализовать операцию CTI (интеграция компьютерной телефонии).

(Помощь будет оценена) Большое спасибо заранее


person Community    schedule 26.04.2010    source источник
comment
javascript зависит от браузера.. не так ли?   -  person Sungguk Lim    schedule 26.04.2010
comment
@sunglim, JavaScript — это язык программирования общего назначения, который широко распространен в браузерах. Зависимости как таковой нет.   -  person Marcelo Cantos    schedule 26.04.2010
comment
@sunglim: Javascript — это диалект ECMAscript. Вы найдете множество разновидностей ECMAscript, таких как Javascript (интерпретируемый разными движками для браузеров), Jscript.NET, Actionscript и т. д.   -  person Alerty    schedule 27.04.2010


Ответы (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 из кода С++ - ответы JavaScript / Ajax / DHTML

http://bytes.com/topic/javascript/answers/759793-calling-javascript-c-code

Попробуйте все вышеперечисленное.

person ratty    schedule 26.04.2010

Вы можете перенести свой JS на C++; это должно быть довольно простой задачей, так как эти два языка в некоторой степени похожи.

Простое портирование функциональности, вероятно, будет гораздо проще, чем попытки использовать библиотеку синтаксического анализа JS, и, вероятно, менее подвержено ошибкам.

person Williham Totland    schedule 26.04.2010
comment
Это хорошее предложение... также C# 4.0 пугающе близок к JavaScript - просто заставьте все функции возвращать "динамическое" значение, и вы почти у цели... см. channel9.msdn.com/pdc2008/TL16 - person JBRWilkinson; 11.05.2010

JavaScript не является компилируемым языком и, при любом желании, не совместим с C++, поэтому у #include нет шансов импортировать код JavaScript. На самом деле в JavaScript даже не существует понятия заголовочного файла.

Есть несколько движков JavaScript, которые можно интегрировать в скомпилированный язык, в том числе:

  1. SpiderMonkey проекта Mozilla.
  2. V8 Google Chrome.
  3. Целая куча других.
person Marcelo Cantos    schedule 26.04.2010

Подробное руководство по встраиванию JS в C++ с помощью движка Mozilla SpiderMonkey можно найти здесь вам нужно включить jsapi.h, создать/настроить/очистить JS-движок, как описано в руководстве (заполнение сценария char* вашим строковым литералом исходного кода JS и передача полученного массива символов в JS_EvaluateScript), а затем связать с библиотекой SpiderMonkey когда вы создаете исполняемый файл для вашей системы. Обратите внимание, что в этом руководстве объясняется, как вызывать функции C из JS и как вызывать определенные функции JS из C, что также интересно и, возможно, более подходит для ситуации OP.

person CCJ    schedule 29.05.2013