LINUX.ORG.RU

модули на js для программы на C++.

 , ,


2

3

Есть программа написанная на С++, хочу сделать что то вроде пользовательских скриптов для нее.
Скрипты будут на js, в js будет встроен какой нибудь объект CppProg с необходимыми методами для общения с основной программой.

Как такое реализовать? Искать какойнибудь интерпретатор js написанный на C++ ?

★★★★★

Ответ на: комментарий от noomorph

Получится, надо отдельно запустить ноду, отдельно - твою софтину, а потом связать их через прокси (н-р через tcp)?

Тогда сразу вопрос: какая для крестов есть либа для быстрого создания прокси? Чтобы ты ей скормилл класс, а она его разодрала на два стаба и связала куски клеем

stevejobs ★★★★☆
()
Ответ на: комментарий от noomorph

Оно, не?

кажется там наоборот модули на C++ для nodejs

TDrive ★★★★★
() автор топика
Ответ на: комментарий от unfo

Почему не lua?

js популярнее и привычнее.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от wota

v8 или QtScript

кажется то что нужно.

TDrive ★★★★★
() автор топика

на правах диванного аналитика посоветую v8, не зря же nodejs так хорош

gavlig ★★★
()
Ответ на: комментарий от m0rph

Может лучше модули на python?

Это будут скорее пользовательские скрипты чем модули.

TDrive ★★★★★
() автор топика
Ответ на: комментарий от unfo

Давай-ка вбросим и посмотрим.

#include <lauxlib.h>
#include <lualib.h>

int foo(int (*cb)(const char *)) {
    return cb("hello from c");
}

int main(int argc, char *argv[]) {
    lua_State *L = luaL_newstate();
    luaL_openlibs(L);
    luaL_dofile(L, "script.lua");
    lua_close(L);
    return 0;
}

script.lua

ffi = require "ffi"
ffi.cdef [[
    int foo(int (*cb)(const char *));
]]

function callback(greetz)
    print(ffi.string(greetz))
    return 42
end

x = ffi.C.foo(callback)
assert(x == 42)

arturpub ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.