php FFI扩展操作动态链接库 操作DLL文件 so文件

php从7.4版本以后内置了FFI扩展,估计是时间太短的原因,网路上相关文章比较少,大部分都是搬用的官网的说明
最近有个项目需要访问C编写的动态库中的函数 所以用到了FFI这个扩展
安装扩展的方法就不说了
在此记录下碰到的问题:
windows环境 提示Fatal error: Uncaught FFI\Exception: Failed loading ‘D:/mypath/test.dll’;
提示这个错误可能是应为别人开发的动态库 可能有c的头文件 也就是对应的 test.h文件要和test.dll文件一个目录下,
另外一个原因就是编写的动态库可能是win32的 需要用win32的php程序才能执行

  $str = <<<EOF
 	int testAdd(int a,int b);
 	 int testChar(char *a);
EOF;
    $ffi = \FFI::cdef($str, 'D:/mypath/test.dll');
    $result1 = $ffi->testAdd(11,22);

另外在linux环境下 好像FFi是无法加载dll动态库 只能编译成.so文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值