3.3.4 Python
创建一个embed.py文件,然后编辑如下:
from ctypes import cdll
lib = cdll.LoadLibrary("target/release/embed.dll")
lib.process()
print("done!")
更简单了!我们使用ctypes模块中的cdll.调用了LoadLibrary之后,我们调用了process()方法.
在我的系统上,执行了秒.真快!
Page 61
3.3.5 Node.js
Node并不是一种语言,但是目前它是服务端最流行的javaScript脚本.
为了能让Node使用FFI,我们首先需要安装这个库:
$npm install ffi
安装之后,我们可以这样用:
var ffi = require(‘ffi‘);
var lib = ffi.Library(‘target/release/embed.dll‘, {
‘process‘: [ ‘void‘, [] ]
});
lib.process();
console.log("done!");
它看起来更像Ruby而不是Python.我们使用ffi模块来调用ffi.Library(),来加载我们的共享对象.我们需要声明方法的参数和返回值,返回值是void,一个空的数组意味着没有参数.我们可以调用它然后打印结果.
在我的系统上,它执行了0.092秒.
3.3.6 总结
正如你看到的,完成这些功能的基本代码都很简单.当然,我们还有很多可以做的.会在第4.8节进行详细介绍.
时间: 2024-10-27 18:07:04