返回首页
当前位置: 主页 > 编程语言 > C#教程 >

c++中如何调用javascript v8引擎

时间:2014-01-09 00:45来源:电脑教程学习网 www.etwiki.cn 编辑:admin

#include <v8.h>

#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "winmm.lib")

#pragma comment(lib, "v8_base.ia32.lib")
#pragma comment(lib, "v8_snapshot.lib")
#pragma comment(lib, "icui18n.lib")
#pragma comment(lib, "icuuc.lib")

using namespace v8;

int main(int argc, char *argv[])
{
v8::V8::InitializeICU();
//v8::Isolate* isolate = v8::Isolate::New();v8::V8::SetFlagsFromCommandLine(&argc, argv, true);
v8::Isolate* isolate = v8::Isolate::GetCurrent();
{
// 创建一个句柄作用域 ( 在栈上 )
HandleScope handle_scope(isolate);

// 创建一个新的上下文对象
v8::Handle<v8::Context> context = Context::New(isolate);
if (context.IsEmpty())
{
fprintf(stderr, "Error creating context\n");
return 1;
}

context->Enter();

// 创建一个字符串对象,字符串对象被 JS 引擎
// 求值后,结果为'Hello, World!2013'
Handle<String> source = String::New("'hello,World!'+(2012+1)");

// 编译字符串对象为脚本对象
Handle<Script> script = Script::Compile(source);

// 执行脚本,获取结果
Handle <Value> result = script->Run();

// 转换结果为字符串
String::AsciiValue ascii(result);

printf("%s\n", *ascii);
context->Exit();
}
v8::V8::Dispose();
return 0;
}
 

------分隔线----------------------------
标签(Tag):c# c#技巧 c#实例教程 c#源代码 c#基础教程
------分隔线----------------------------
推荐内容
猜你感兴趣