我正在开发一个在服务器端使用CakePHP的Web应用程序,我需要使用由第三方提供的DLL来访问他们的平台,所以我没有DLL的源代码,我不能修改它。 我已经搜查了这个,我还没有find一个简单的方法来做到这一点。
什么是在PHP中加载DLL的最佳方法?
我应该build立一个PHP扩展,作为第三方DLL包装?
还有其他方法吗?
提前致谢。
UPDATE
我发现我可以使用DLL作为COM对象,但我需要在Windows上注册DLL,每当客户端需要部署服务器,我想一个解决scheme,不涉及注册DLL。
UPDATE
我试图注册的DLL,但我得到一个错误(“入口点DllRegisterServer没有find”),这意味着它可能不被编译为一个COM对象。 我认为唯一的select是创build一个C / C ++ php扩展,封装dll或创build一个C ++ / C#COM对象,封装dll并使用DOTNET php扩展。
我结束了实现一个.NET COM可见包装的DLL,我导入的DLL函数是这样的:
[DllImport("dapi.dll", EntryPoint = "#100", PreserveSig = false, CallingConvention = CallingConvention.StdCall)] public static extern Idapi CreateDapi();
我使用cmd中的regasm.exe实用程序将Wrapper注册为COM对象:
regasm /codebase dapiWrapper.dll
并在PHP中,我像这样instanciated COM对象:
$this->dapiCom = new COM("DapiWrapper.DapiWrapper") or die("Error");