立即登录

delphi 调用js脚本 v8中js创建以及调用c++类的实现

11/27 20:54:49

delphi 调用js脚本 v8中js创建以及调用c++类的实现

通过v8delphi 调用js脚本,可以封装c++中的对象供js调用:

global->Set(v8::String::NewFromUtf8(GetIsolate(), "SetName"),v8::FunctionTemplate::New(GetIsolate(), MineScript::SetName));v8::Handle context=Context::New(GetIsolate(),NULL,global);//context->DetachGlobal();Context::Scope context_scope(context);Handle result = global->NewInstance();Handle request_ptr = External::New(GetIsolate(),m_pBase);result->SetInternalField(0, request_ptr);context->Global()->Set(v8::String::NewFromUtf8(GetIsolate(), "point"), result);

这样,在js中直接通过

point.SetName();

就可以调用c++中point对象的SetName()函数了。

但是如何直接在js中创建一个c++对象实例、如何在c++中创建一个js对象呢??

这个就得用到FunctionTemplate了

Handle minebase_template = 
		FunctionTemplate::New(GetIsolate(),MinebaseConstructCallback);
	minebase_template->SetClassName(v8::String::NewFromUtf8(isolate_,"JsMinebase"));
	Handle minebase_proto = minebase_template->PrototypeTemplate();

delphi webbrowser调用js_delphi 调用js脚本_delphi 调用js

以上代码就是通过c++在v8引擎中构建一个js的类:JsMinebase,这样就可以在js中直接创建JsMinebase对象了,类似

var obj=new JsMinebase();

delphi 调用js脚本_delphi webbrowser调用js_delphi 调用js

而要在js中创建c++中的类的实例,则通过MinebaseConstructCallback中来进行实现了辅助卡盟,在其中既可创建c++中的对象,也可将找到的某个对象封装到obj中

void MinebaseConstructCallback(const v8::FunctionCallbackInfo& args) {
	if (!args.IsConstructCall())
		return /*Undefined(pCurMineMgr->isolate)*/;
	CMineBase* cloudapp;
	if (args.Length()==1)
	{

delphi webbrowser调用js_delphi 调用js脚本_delphi 调用js

delphi webbrowser调用js_delphi 调用js脚本_delphi 调用js

这样,就达到了在js中创建c++对象的目的,然后就可以调用其函数了,当然delphi 调用js脚本,调用的函数也需要进行封装

来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

最新资讯