2009-12-23 81 views
4

我正在使用xampp。如何从Windows中的一个DLL调用一个函数?

我搜索,它看起来像PHP 4.x,有一个扩展名为php_w32api.dll似乎已经消失了PHP 5.x.尽管如此,它仍然在php.net的文档中,但标记为实验性的。

有人建议在pecl中使用win32std,但这只是包装了win32 api的某些功能,但不允许我调用自己的dll函数。 :/

有FFI,但在PECL网站的链接是死的,这似乎是发展于2004年

任何想法已经停止如何做到这一点没有写我自己的PHP扩展?

问候 马克

回答

4

COM功能仅适用于Windows版本的PHP。 .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!) 
    ?> 
+0

嗯。如果我已经有一个导出简单函数的dll会怎么样?不知何故,这是否适用? – marc40000 2009-12-23 21:57:17

+0

嗯..如果你知道这个DLL提供了什么功能,那么你只需要抓住逻辑并把它放到你的PHP应用程序;-) – streetparade 2009-12-23 23:34:13

+0

我不知道。我没有写dll。 – marc40000 2009-12-26 14:12:10

相关问题