之前做了个项目,客户需要在程序运行时调用一个统计算法,但是该算法每个月都不一样,于是,我用上了Lua作为脚本,通过LuaInterface来调用该算法。
因为需求比较简单,所以很容易就实现了。但是Lua脚本我确实不太熟悉,万一以后有什么更复杂的需求,就比较麻烦了。后来找到了Google 开源的V8 Javascript引擎,利用它可以实现C++中调用Javascript,当然,按照惯例,一般都会出现v8 for .net 之类的东西,搜索了一下,果然找到了一个叫v8sharp 的开源项目。
下载后,只有源代码,果断编译。
(这里放上我编译好的库文件,供需要的朋友下载)
使用上比较简单,官方网站进去就有例子,我提供的下载里面也放入了官方的例子(例子比较少,不过足够了)。
这里贴上我测试的代码。
熟悉Js的朋友就可以利用这个来做为脚本了,比较方便。
补充说明一下:目前在处理中文字符串的时候,有些问题,在于从JS中返回字符串到.NET或者在JS中调用.NET方法传递中文字符串会出现乱码。
目前只有个替代解决办法,就是在传递的时候调用一次JS的encodeURI,在.NET中调用UrlDecode方法即可。
如果有朋友找到了解决办法,麻烦告知我一声。