将 DLL 与 PHP 一起用于傻瓜 [英] Using a DLL With PHP for Dummies

查看:20
本文介绍了将 DLL 与 PHP 一起用于傻瓜的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个项目需要使用 PHP 访问 DLL.服务器是Windows机器,Apache服务器由XAMPP提供.

I have a project that needs to access a DLL with PHP. The server is a Windows machine and the Apache server is provided by XAMPP.

我在网上阅读了多个答案,例如

I read multiple answers on the web like

这是我在 HTA/Javascript 中调用 DLL 的方式:

Here is how I call the DLL in HTA / Javascript:

<object style="display:none" id="SOME_ID" classid="clsid:SOME_CLASS_ID" codebase="./somePath.dll"></object>

有人有工作示例吗?

这是我迄今为止在 PHP 中尝试过的:

Here is what I tried so far in PHP:

$obj = new COM('pathTo.dll');

DLL 信息:

  1. 使用 Delphi 编译
  2. 它(当然)是自制的
  3. 当我尝试使用 regsvr32
  4. 注册 DLL 时,我收到以下错误 找不到 DllRegister 服务器入口点

不用regsvr32注册就可以使用吗?

Can it be used without registering it with regsvr32?

推荐答案

创建 DLL 文件时,需要使用 模块定义文件.它将包含与此类似的内容:

When you create your DLL file, you need to use a module definition file. It will contain something similar to this:

;
;contains the list of functions that are being exported from this DLL
;

DESCRIPTION     "Simple COM object"

EXPORTS
                DllGetClassObject       PRIVATE
                DllCanUnloadNow         PRIVATE
                DllRegisterServer       PRIVATE
                DllUnregisterServer     PRIVATE

该定义允许 regsvr32 找到 DllRegisterServer 入口点.

That definition allows regsvr32 to find the DllRegisterServer entry point.

您可以尝试的另一个选项是将/n 标志传递给 regsvr32.

Another option you can try is to pass the /n flag to regsvr32.

Regsvr32 [/u] [/n] [/i[:cmdline]] dllname

Regsvr32 [/u] [/n] [/i[:cmdline]] dllname

/u - 注销服务器

/i - 调用 DllInstall 并传递一个可选的 [cmdline];与/u 一起使用时调用 dll 卸载

/i - Call DllInstall passing it an optional [cmdline]; when used with /u calls dll uninstall

/n - 不调用 DllRegisterServer;此选项必须与/i 一起使用

/n - do not call DllRegisterServer; this option must be used with /i

/s – 静音;不显示消息框(随 Windows XP 和 Windows Vista 添加)

/s – Silent; display no message boxes (added with Windows XP and Windows Vista)

最终,在您尝试使 DLL 与 PHP 一起工作之前,您需要确保您的 DLL 能够正常工作.

Ultimately, before you try to make a DLL work with PHP, you need to be sure your DLL works in general.

这篇关于将 DLL 与 PHP 一起用于傻瓜的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆