13 Star 69 Fork 22

johnsonyl/cpps

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
main.cpp 932 Bytes
一键复制 编辑 原始数据 按行查看 历史
module ffi{
class FFI_FUNCTION
{
var _module;
var _func;
var _return_type;
var _args_type;
FFI_FUNCTION(var __module,var __func,var __return_type,var __args_type)
{
_module = __module;
_func = __func;
_return_type = __return_type;
_args_type = __args_type;
}
var operator () (...Args)
{
ffi_call(_func,_return_type,_args_type,Args);
}
}
var dlopen(var path,var funcs)
{
var __module = ffi.ffi_dlopen(path);
if(__module == 0) return null;
var _interface = {};
_interface["__module"] = __module;
for(var _f: funcs){
var funcname = _f.first();
var __func = ffi.ffi_dlsym(__module,funcname);
if(__func != 0){
var _v = _f.second();
var return_type = _v[0];
var args_type = _v[1];
_interface[funcname] = new FFI_FUNCTION(__module,__func,return_type,args_type);
}
}
return _interface;
}
var dlclose(var _module){
ffi.ffi_dlclose(_module->__module);
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/cppscript/cpps.git
git@gitee.com:cppscript/cpps.git
cppscript
cpps
cpps
master

搜索帮助