我有一个项目需要使用PHP访问DLL。服务器是Windows机器,Apache服务器由XAMPP提供。
我在网上看到了多个答案
以下是我在HTA
/ Javascript
中调用DLL的方法:
<object style="display:none" id="SOME_ID" classid="clsid:SOME_CLASS_ID" codebase="./somePath.dll"></object>
有人有一个有效的例子吗?
这是我到目前为止在PHP中尝试的内容:
$obj = new COM('pathTo.dll');
有关DLL的信息:
the DllRegister Server entry point was not found
注册DLL时,我得到以下错误regsvr32
它可以在没有用regsvr32
注册的情况下使用吗?
创建DLL文件时,需要使用module definition file。它将包含类似于此的内容:
;
;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入口点。
您可以尝试的另一个选项是将/ n标志传递给regsvr32。
Regsvr32 [/ u] [/ n] [/ i [:cmdline]] dllname
/ u - 取消注册服务器
/ i - 调用DllInstall传递一个可选的[命令行];与/ u一起使用时调用dll uninstall
/ n - 不要调用DllRegisterServer;此选项必须与/ i一起使用
/ s - 沉默;不显示消息框(添加了Windows XP和Windows Vista)
最后,在尝试使用PHP工作DLL之前,您需要确保您的DLL一般工作。
无法从Linux / Apache服务器访问DLL。因此该项目下降。
我有同样的问题,我修复了一些步骤:
C:\Windows\system32\regsvr32 xwizards.dll
(这是例子)
一个窗口显示“DLLRegisterServer成功” try {
$dll = new COM('<theNameOfDllFile>.<NameOfTheClass>'); //without extension '.dll' for theNameOfDllFile
$dll->Function();
} catch(Exception $e){
echo 'error: ' . $e->getMessage(), "\n";}
现在,如果你知道如何管理你的课程和你的功能,那就没事了,但是你的屏幕上不应该出现错误按摩如果我不清楚,请告诉我,下次我会尽力:)