如何在Windows上从PHP调用DLL中的函数?

4
我正在使用xampp。
我搜索了一下,似乎对于php 4.x,有一个叫做php_w32api.dll的扩展程序,但在php 5.x中已经消失了。尽管如此,在php.net文档中仍然存在,但被标记为实验性。
一些人建议使用pecl中的win32std,但那只是包装了win32 api的一些函数,而不能调用自己的dll函数。 :/
虽然有ffi,但是pecl网站上的链接已经失效,而且开发似乎已经停止于2004年。
有没有不编写自己的php扩展程序就能完成这个任务的想法?
最好的祝福 马克
1个回答

4

COM函数仅适用于PHP的Windows版本。 .Net支持需要PHP 5和.Net运行时。 使用这些函数无需安装,它们是PHP核心的一部分。

首先创建您的ActiveX dll(Visual Basic): 将项目命名为“foo”,类命名为“bar”。

'---start VB code---
Public Function hello() As String
   hello = "Hello World!"
End Function
'---end VB code---

然后制作dll并使用regsvr32.exe进行注册 现在创建您的PHP脚本:
 <?php
    $obj = new COM("foo.bar");
    $output=$obj->hello(); // Call the "hello()" method
    // once we created the COM object this can be used like any other php classes.
    echo $output; // Displays Hello World! (so this comes from the dll!)
    ?>

1
嗯,如果我已经有一个导出简单函数的dll,这是否适用? - marc40000
如果您知道这个dll提供了哪些函数,那么您只需要捕捉逻辑并将其放入您的php应用程序中即可;-) - streetparade
1
我没有。我没有写这个dll。 - marc40000

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接