搜索
aardio官方社区 门户 查看主题

微软ChakraCore js引擎简单试用

发布者: cad | 发布时间: 2018-1-18 22:19| 查看数: 594| 评论数: 2|帖子模式

本帖最后由 cad 于 2018-1-18 22:33 编辑


import console;

var dll = raw.loadDll("C:\Users\pc\Desktop\ChakraCore.dll")

var rt = {ptr ptr}
var ctx = {ptr ptr}
var ret = {ptr ptr}
var currentSourceContext = 0;

// 返回一个字符串
var script = /**
(()=>{return "hello world";})()
**/


// Create a runtime.
dll.JsCreateRuntime(0,null,rt)

// Create an execution context.
dll.JsCreateContext( rt.ptr,ctx)

// Now set the current execution context.
dll.JsSetCurrentContext(ctx.ptr)


// Run the script.
currentSourceContext++
dll.JsRunScriptW( script, currentSourceContext,
"", ret)

// Convert your script result to String in JavaScript; redundant if your script returns a String
var resultJSString = {ptr ptr}
dll.JsConvertValueToString( ret.ptr, resultJSString)

// Project script result back to C++.
var stringLength = {INT len}
dll.JsCopyString( resultJSString.ptr,
null, 0, stringLength)

var resultSTR = raw.buffer(stringLength.len)
dll.JsCopyString( resultJSString.ptr, resultSTR, stringLength.len,
null)

// 打印结果
console.log(  raw.tostring(resultSTR)  )

// Dispose runtime
dll.JsSetCurrentContext(null)
dll.JsDisposeRuntime(rt.ptr)

execute("pause")


最新评论

Jacen.He 发表于 2018-1-18 23:23:47
感谢分享,可以用 JSON.stringify 传对象。
popdes 发表于 2018-1-18 23:41:10
请问为什么要定义成{ }这样的?
还有什么时候用这种定义呢?

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-4-23 00:19 , Processed in 0.062502 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表