Tag: embedded v8

如何存储对函数的引用,以便稍后在node.js C ++插件模块中调用它?

这里是我用C ++编写的node.js插件模块,使用node-gyp构build。 当StoreFunction我试图存储一个指向函数的指针,所以我可以稍后使用它 当我尝试稍后通过InvokeFunction调用它时,出现Segmentation错误。 如果我在两个函数(使用cout)中检查指针,我感到困惑,它们是相同的值。 所以我猜测调用两个函数之间调用上下文更改的变化,或者我不明白我指的是什么。 所有(ummmmmm)指针感激地收到我的问题在这里………….. #include <node.h> #include <v8.h> using namespace v8; v8::Persistent<v8::Function> callbackFunction; Handle<Value> StoreFunction(const Arguments& args) { HandleScope scope; callbackFunction = *Local<Function>::Cast(args[0]); return scope.Close(Undefined()); } Handle<Value> InvokeFunction(const Arguments& args) { HandleScope scope; Local<Value> argv[1] = { String::New("Callback from InvokeFunction")}; callbackFunction->Call(Context::GetCurrent()->Global(), 1, argv); return scope.Close(Undefined()); } void init(Handle<Object> target) { NODE_SET_METHOD(target, "StoreFunction", […]

node.js插件上未定义的符号

我正在尝试创build一些node.js插件。 在插件里面我有一个静态库的调用。 一切编译好,但是当我从JavaScript调用我的插件function,我得到以下内容: module.js:356 Module._extensions[extension](this, filename); ^ Error: /home/…/Projects/NodeAddonComLibTest/build/Debug/addon.node: undefined symbol: _Z6ctest1Pi at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (/home/…/Projects/NodeAddonComLibTest/doTest.js:1:75) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) 我的插件代码如下: #include <iostream> #include <string.h> #include <stdlib.h> #include <node.h> #include <v8.h> using namespace […]

JavaScript标准库V8

在我的应用程序中,我允许用户使用JavaScript编写插件。 为此我embedded了V8。 问题是开发人员不能使用像HTTP,套接字,stream,定时器,线程,Crypotography,unit testing等等。 我search堆栈溢出,我发现node.js。 它的问题是,你可以真正创build HTTP服务器,并启动进程和更多的东西,我不想让。 另外,node.js有自己的环境( ./node script.js ),你不能embedded它。 而且它不支持Windows – 我需要它是完全跨平台的。 如果这些问题可以解决,那就太棒了:)但是我也对其他框架开放。 有任何想法吗? 谢谢!