【发布时间】:2016-09-12 15:15:10
【问题描述】:
我正在服务器端使用 CakePHP 开发一个 Web 应用程序,我需要使用第 3 方提供的 dll 来访问他们的平台,所以我没有 dll 的源代码,我可以'不要修改它。我对此进行了搜索,但没有找到一种简单的方法。
在 php 中加载 dll 的最佳方法是什么?
我应该构建一个 php 扩展来作为第 3 方 dll 的包装器吗?
还有其他方法吗?
提前致谢。
更新
我发现我可以将 dll 用作 COM 对象,但是每次客户端需要部署服务器时,我都需要在 Windows 上注册 dll,我想要一个不涉及注册 dll 的解决方案.
更新
我尝试注册 dll,但出现错误(“找不到入口点 DllRegisterServer”),这意味着它可能未编译为用作 COM 对象。我认为唯一的选择是创建一个包装 dll 的 C/C++ php 扩展或创建一个包装 dll 并使用 DOTNET php 扩展的 C++/C# COM 对象。
【问题讨论】:
-
您正在运行 Windows 对吗?您需要混合使用 PHP 的
exec()和 stackoverflow.com/questions/3044395/how-do-i-execute-a-dll-file -
我不认为这样做,因为我需要调用 dll 中的一个方法,该方法将返回一个对象,然后从该对象调用一些方法。我发现我可以将 dll 用作 COM 对象,但每次客户端需要部署服务器时,我都需要在 Windows 上注册 dll。
-
您的部署脚本不能自动注册 DLL 吗?
-
我尝试注册 dll,但出现错误(“找不到入口点 DllRegisterServer”),这意味着它可能未编译为用作 COM 对象。我认为唯一的选择是创建一个包装 dll 的 C/C++ php 扩展或创建一个包装 dll 并使用 DOTNET php 扩展的 C++/C# COM 对象。
标签: php windows dll com php-extension