Spidermonkey - 从 C# 或 C++ 调用 javascript 函数(视觉工作室2010)

发布于 2025-01-08 02:08:27 字数 502 浏览 0 评论 0原文

我想使用 VS2010 在我的 C#(或 C++)控制台应用程序中嵌入 SpiderMonkey 引擎调用,这样我就可以将一些值从 C# 代码发送到 javascript 函数并获取结果,但我不知道从哪里以及如何开始。

到目前为止,我已经下载了 Spidermonkey 源代码并使用 mozilla-build 工具对其进行了编译。现在我可以启动 js shell,加载我的 .js 文件,在其中运行 javascript 函数并获得正确的结果。比我在 VS2010 中创建 win32 C++ 控制台应用程序,将 js.lib 和头文件从我的 dist/include 文件夹添加到项目中。尝试使用简单的 示例 来启动它,并且确实可以正常构建(之后仅尝试了 3 天),但在运行时它会抛出系统错误 - “无法启动,因为您的计算机中缺少 js.exe。”

I would like to embed spidermonkey engine calls in my C# (or C++) console app using VS2010, so I can send some values from C# code to the javascript functions and get the result back, but I don't know where and how to start.

Till now I have downloaded the spidermonkey source code and compiled it using mozilla-build tools. Now I am able to start js shell, load my .js file, run javascript functions inside it and get correct results.Than I created win32 C++ console app in VS2010, added js.lib and header files from my dist/include folder to project. Tried with simple example to start it up and really it builds with no errors (after only 3 days of trying) but on Run it throws system error - "Can't start because js.exe is missing from your computer."

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绅士风度i 2025-01-15 02:08:27

如果您想将 SpiderMonkey 嵌入到您自己的 C++ 应用程序中,您应该将 SpiderMonkey 视为静态或 DLL 库并将其链接到您自己的代码。

我建议不要打扰 js shell,除非,在我看来,测试你的 Spidermonkey 构建或在独立 shell 中测试运行一些 Javascript 脚本。您还可以研究 js shell 源代码来感受如何正确使用 JSAPI 函数调用。但是为了将 Spidermonkey 嵌入到您自己的 C++ 应用程序中,js shell 没有提供特殊的 API。它只是另一个使用spidermonkey 公开的JSAPI 的控制台应用程序。

查看构建目录中的 jsapi.h。这些是您自己的应用程序应该使用的函数调用。特别是,我认为您通常会创建许多公开为 Javascript 函数的 JSNative 函数。

If you would like to embed spidermonkey into your own C++ application, you should just treat the spidermonkey as a static or DLL library and link it to your own code.

I recommend not to bother with the js shell except, say, in my opinion, to test your spidermonkey build or test run some Javascript scripts in a standalone shell. You can also study the js shell source code to get a feel of how to use the JSAPI function calls properly. But for embedding spidermonkey into your own C++ application, js shell offers no special API. It is just another console application that USES the JSAPI exposed by spidermonkey.

Check out jsapi.h in your build directory. These are the function calls that your own application should use. In particular, I think you would normally create many JSNative functions exposed as Javascript functions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文