【发布时间】:2017-07-29 11:45:41
【问题描述】:
如何在远程服务器上运行位于 dll 文件中的 COM 对象?
根据php.net(http://php.net/manual/en/faq.com.php#faq.com.q8):
如何从远程服务器运行 COM 对象?就像你跑步一样 本地对象。您只需将远程机器的 IP 传递为 COM 构造函数的第二个参数。
确保您在 php.ini 中设置了 com.allow_dcom=TRUE。
我在我的 php.ini 中启用了 com.allow_dcom 并根据 phpinfo();事实上,我确实启用了 COM 支持、DCOM 支持和 .NET 支持。我很难找到如何调用远程对象的示例。
DLL 文件 (pcmsrv32.dll) 位于远程服务器上的 C:\Windows 中。 我需要访问存储在该文件中的对象方法 CalcDistance()。
我已尝试将文件位置和 IP 传递给 COM 类:
$obj = new COM("C:\Windows\PCMSRV32.DLL","10.86.0.21");
但这不起作用。我收到此错误:
Fatal error: Uncaught com_exception: Failed to create COM object `C:\Windows\PCMSRV32.DLL': Moniker cannot open file in C:\Users\...\index.php:33
我也尝试使用 PC*Miler|Connect 用户指南中给出的 ProgID 并在我的代码中使用它:
$com = new COM("PCMServer.PCMServer.1","10.86.0.21");
但是这给了我这个错误:
com_exception: Failed to create COM object `PCMServer.PCMServer.1': Invalid syntax
我做错了什么?
【问题讨论】:
-
我已经删除了我的另一个问题,因为我正在尝试不同的方法来解决我的问题。我可能最终也会删除这个。
标签: php oop dll com remote-server