Linux PHP接入C++标准DLL接口(非COM、非PHP扩展 )的解决方案

来源:互联网 发布:ubuntu 配置文件损坏 编辑:程序博客网 时间:2024/06/03 20:55

项目背景:部署在Linux平台上的PHP项目

需求:接入一个第三方系统,对方只提供了一个C++的标准DLL,非COM组件、更不是PHP扩展


    大家都知道DLL是Windows平台的,Linux平台对应的是SO,找对方交涉要求提供相应的SO文件,得到反馈暂时不能提供,要在Windows平台下进行= =!

    私下里琢磨,生成相应的SO文件并不是转换到Linux平台编译一下这么简单,一开始没有明确计划的话,代码的兼容性堪忧,赶鸭子上架临时对应的话,稳定性肯定会受到影响。所以这条路基本PASS,还是乖乖的考虑在2 个平台下怎么整合。

    初步预想是再准备一台Win Server服务器,第三方DLL运行在这台Win服务器,再在这台服务器上写一个DLL的宿主程序,PHP通过Http协议发送请求给这个宿主程序,宿主程序调用DLL以Json形式返回结果给PHP。这样一条路虽然纠结点,但是差不多走通了。


    DLL的宿主程序选择了Java,使用JNA访问DLL,网上实例很多。PHP好像可以使用DynamicWrapper.dll调用,没有具体去试验过。JNA的解决方案个人觉得更成熟点,所以选择了使用Java做宿主程序,另外推荐一个轻量级Java框架JFinal,真的很好用。。。


0 0
原创粉丝点击