我可以用PHP用C编写的dll吗?

时间:2009-04-01 19:17:20

标签: php c

我们正在与这里开发的硬件连接,并允许通过网络进行访问。该设备的固件是用C语言编写的,部分固件是大约5000行代码,用于解析配置数据的巨大二进制文件,编译为.dll。

在天堂有什么方法我可以从PHP访问用C语言编写的.dll吗?

我认为这是不行的,但在开始尝试在PHP中复制5000行C之前,我想我会给专家们一个机会。

谢谢大家。

JH

3 个答案:

答案 0 :(得分:6)

是的,您可以将它用作php扩展(用C语言编写),但您可能需要进行一些修改等等。

http://devzone.zend.com/node/view/id/1021

我认为this question与您有关。

答案 1 :(得分:2)

您可能需要查看SWIG,这是一个包装库的通用工具,以便可以从各种语言中调用它们。 SWIG支持PHP,Perl和Lua(我个人使用的目标)也是如此。引自SWIG website的功能列表:

  

SWIG目前生成包装代码   对于十八个不同的目标   语言:

     
      
  • Allegro CL
  •   
  • C#
  •   
  • CFFI
  •   
  • CLISP
  •   
  •   
  • 狡诈
  •   
  • 爪哇
  •   
  • 的Lua
  •   
  • Modula一3
  •   
  • 的MzScheme
  •   
  • OCAML
  •   
  • 八度
  •   
  • 的Perl
  •   
  • PHP
  •   
  • 的Python
  •   
  • - [R
  •   
  • 红宝石
  •   
  • 的Tcl
  •   
  • UFFI
  •   
     

除此之外,解析树   可以导出为XML和Lisp   s表达式。实验工作是   也可用于派克模块。

它的一些功能依赖于每种语言包装器生成器中的后端支持,但通常它提供了易于使用的包装器,用于将所有普通数据值类型传入和传出函数。在目标语言具有概念的情况下,它通常也可以映射对象模型。

答案 2 :(得分:1)

你难道不能将你需要的DLL部分编译成可执行文件,并从php执行它并利用结果吗?

这样的东西
$data = `someprogram --options`

然后只需使用您想要的数据。