Spidermonkey - вызов функции JavaScript из C # или C ++ (VIsual Studio 2010) - PullRequest
0 голосов
/ 23 февраля 2012

Я хотел бы встроить вызовы движка spidermonkey в мое консольное приложение C # (или C ++), используя VS2010, чтобы я мог отправить некоторые значения из кода C # в функции javascript и получить результат обратно, но я не знаю, где ис чего начать.

До сих пор я скачал исходный код spidermonkey и скомпилировал его с помощью инструментов сборки mozilla.Теперь я могу запустить оболочку js, загрузить свой файл .js, запустить внутри него функции javascript и получить правильные результаты. Тогда я создал консольное приложение win32 C ++ в VS2010, добавил файлы js.lib и заголовочные файлы из моей папки dist / include в проект,Попробовал простой пример , чтобы запустить его, и он действительно собирается без ошибок (после 3 дней попытки), но при запуске выдает системную ошибку - «Не удается запустить, потому что js.exe отсутствует в вашемкомпьютер. "

1 Ответ

1 голос
/ 07 марта 2012

Если вы хотите встроить spidermonkey в свое собственное приложение C ++, вам следует просто обработать spidermonkey как статическую библиотеку или библиотеку DLL и связать ее с вашим собственным кодом.

Я рекомендую не беспокоиться о оболочке js, за исключением, скажем, по моему мнению, тестирования вашей сборки spidermonkey или тестового запуска некоторых сценариев Javascript в отдельной оболочке.Вы также можете изучить исходный код оболочки js, чтобы понять, как правильно использовать вызовы функций JSAPI.Но для встраивания spidermonkey в ваше собственное приложение C ++, js shell не предлагает специального API.Это просто еще одно консольное приложение, которое использует JSAPI, предоставляемый spidermonkey.

Проверьте jsapi.h в вашем каталоге сборки.Это вызовы функций, которые должно использовать ваше собственное приложение.В частности, я думаю, что вы обычно создаете много функций JSNative, представленных как функции Javascript.

...