使用DLL与PHP的傻瓜

Dav*_*rge 15 php xampp dll ocx

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

我在网上看到了多个答案

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

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

有人有一个有效的例子吗?

这是我到目前为止在PHP中尝试的内容:

$obj = new COM('pathTo.dll');
Run Code Online (Sandbox Code Playgroud)

有关DLL的信息:

  1. 使用Delphi编译
  2. 它(当然)是自制的
  3. the DllRegister Server entry point was not found尝试注册DLL时出现以下错误regsvr32

它可以在没有注册的情况下使用regsvr32吗?

Jer*_*ris 13

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

;
;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
Run Code Online (Sandbox Code Playgroud)

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

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

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

/ u - 取消注册服务器

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

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

/ s - 沉默; 不显示消息框(添加了Windows XP和Windows Vista)

最后,在尝试使用PHP工作DLL之前,您需要确保您的DLL一般工作.