如何在C++中执行Javascript函数

10
请告诉我如何在C++代码中包含JavaScript的头文件或函数。该C++代码是在Linux(UBUNTU)中编写的?
虽然我只需要执行上述操作,但是让我告诉您我的目的,因为我打算实现CTI(计算机电话集成)操作。
(感谢您的帮助)非常感谢。

JavaScript 依赖于浏览器,不是吗? - Sungguk Lim
2
@sunglim,JavaScript是一种通用编程语言,在浏览器中非常普遍。并没有什么依赖关系。 - Marcelo Cantos
1
@sunglim:Javascript是ECMAscript的方言。你会发现许多ECMAscript的变体,比如被不同浏览器引擎解释的Javascript,Jscript.NET,Actionscript等。 - Alerty
4个回答

15

6
你也许想将你的JS移植到C ++;这应该是一个相当简单的任务,因为这两种语言有些相似。
仅仅移植功能可能会比尝试使用JS解析库更简单,并且可能会更少出现错误。

1
这是一个很好的建议......同时C# 4.0非常接近JavaScript——只要让所有函数返回一个“dynamic”,你就快到目标了......请参见http://channel9.msdn.com/pdc2008/TL16/。 - JBRWilkinson
由于已经有几个针对C的JavaScript编译器,因此自动将JavaScript移植到C++可能是可行的。 - Anderson Green

5
JavaScript不是一种编译语言,也与C++完全不兼容,因此#include无法导入JavaScript代码。事实上,在JavaScript中根本不存在头文件的概念。
有几个JavaScript引擎可以集成到编译语言中,包括:
  1. Mozilla项目的SpiderMonkey
  2. Google Chrome的V8
  3. 其他许多引擎

2
您可以在这里找到通过Mozilla的SpiderMonkey引擎将JS嵌入到C ++中的详细教程。点击此处,基本上您需要包含jsapi.h,并根据教程创建/配置/清理JS引擎(使用char*脚本填充您的字符串文字JS源代码并将结果字符数组传递给JS_EvaluateScript),然后在构建系统可执行文件时链接到SpiderMonkey库。请注意,该教程继续解释了如何从JS调用C函数以及如何从C调用特定的JS函数,这也很有趣,可能更适合操作者的情况。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接