如何将v8引擎嵌入到dll中(c ++项目)

时间:2017-06-13 04:00:22

标签: embed v8

我对将v8嵌入dll有疑问,请帮助我,非常感谢。

我有一个针对ollydbg2.01的vs2013的odbgscript.dll插件项目,这个dll调用v8(版本v8-5.6.331)来执行javascript语句。 ollydbg.exe调用odbgscript.dll。我在odbgscript.dll中调用v8代码如下:

#include "v8.h"
using namespace v8

    V8::InitializeICU();                
    V8::Initialize();       

    Isolate::CreateParams create_params;        
    Isolate* isolate = Isolate::New(create_params);     
    Isolate::Scope isolate_scope(isolate);

    HandleScope handle_scope(isolate);      
    Local<Context> context = Context::New(isolate);     
    Context::Scope context_scope(context);

    Local<String> source = String::NewFromUtf8(isolate,    "'hello'+'world'");
    Local<Script> script = Script::Compile(source);
    Local<Value> result = script->Run();

上面的代码可以通过vs2013成功编译,但是在运行ollydbg.exe之后,执行odbgscript.dll插件,ollydbg.exe被中止,一些错误提示如下:

操作系统:6.1.7601,平台2(Service Pack 1) OllyDbg版本:2.01.00 例外代码:C0000005 参数:00000000 00000000 例外地址:00000000

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。不同的v8版本需要不同的语法语句。更改编号,你可以得到相应的例子。

https://chromium.googlesource.com/v8/v8/+/branch-heads/5.6/samples/hello-world.cc