2
我有一些JavaScript文件,我想在调用我的C++函数期间调用此文件中定义的某些函数。请注意,我想通过名称来调用它,而不仅仅是作为参数传递的一些随机函数。从C++ node.js扩展调用javascript函数
test.js:
function someFunc()
{
// do something...
}
var my_module = require("my_native_module");
my_module.nativeFunc();
TEST.CPP:
using namespace v8;
Handle<Value> nativeFunc(const Arguments & args)
{
HandleScope scope;
// I want to somehow get someFunc value from current context by name
Local<Value> function_value = Context::GetCurrent()->Global()->Get_By_Name(String::New("someFunc")); // this doesn't work
// probably check that function_value is really a function...
Local<Function> function_callable = Local<Function>::Cast(function_value);
function_callable->Call(Context::GetCurrent()->Global(), 0, nullptr);
return(scope.Close(Undefined()));
}
所有的例子似乎接受这样的函数作为参数(回调):
Local<Function> cb = Local<Function>::Cast(args[0]);
但我需要通过名称来找到该功能。
我使用Node.js的V0。 10.33和v8 :: String没有任何NewFromUtf8方法。查看v8文档NewFromUtf8应该在那里,但它不在包含在node.js – trbvm 2014-12-19 08:50:16
中''NewFromUtf8'用于节点v 0.12。 'String :: New(“Whatevs”)'适用于较旧的节点。 – carter 2015-07-10 21:31:46