csdn lidp http://blog.csdn.net/perfectpdl
本文介绍了一些V8关键概念,同时提供了一个在v8提供的接口上的hello world 例子。
本文介绍的开发模式是采用C++语言,把V8 js引擎嵌入到c++应用程序中。
在 v8介绍一文中 提过js引擎的目的是解析 js代码,编译,执行。
下面的例子中把hell world做为js代码执行并输出结果到屏幕:
int main(int argc, char* argv[]) { // Create a string containing the JavaScript source code. String source = String::New("'Hello' + ', World'"); // Compile the source code. Script script = Script::Compile(source); // Run the script to get the result. Value result = script->Run(); // Convert the result to an ASCII string and print it. String::AsciiValue ascii(result); printf("%s\n", *ascii); return 0; }
为了执行以上代码,还需要添加 句柄(handler),句柄范围(handler scope)以及上下文(context)。
#include <v8.h> using namespace v8; int main(int argc, char* argv[]) { // Create a stack-allocated handle scope. HandleScope handle_scope; // Create a new context. Persistent<Context> context = Context::New(); // Enter the created context for compiling and // running the hello world script. Context::Scope context_scope(context); // Create a string containing the JavaScript source code. Handle<String> source = String::New("'Hello' + ', World!'"); // Compile the source code. Handle<Script> script = Script::Compile(source); // Run the script to get the result. Handle<Value> result = script->Run(); // Dispose the persistent context. context.Dispose(); // Convert the result to an ASCII string and print it. String::AsciiValue ascii(result); printf("%s\n", *ascii); return 0; }