У меня есть проект, которому нужно получить доступ к DLL с помощью PHP. Сервер — это машина Windows, а сервер Apache предоставляется XAMPP.
Я прочитал несколько ответов в Интернете, например
- Использовать DLL в PHP?
- связь php с dll?
- вызов dll через php
- http://ca.php.net/manual/en/class.com.php
- http://ca2.php.net/manual/en/book.w32api.php
- http://www.talkphp.com/absolute-beginners/3340-php-how-load-com-dll-file.html
Вот как я вызываю DLL в HTA
/Javascript
:
<object style="display:none" id="SOME_ID" classid="clsid:SOME_CLASS_ID" codebase="./somePath.dll"></object>
У кого-нибудь есть рабочий пример?
Вот что я пробовал до сих пор в PHP:
$obj = new COM('pathTo.dll');
Информация о DLL:
- Скомпилировано с помощью Delphi
- Это (конечно) домашнее
- Я получаю следующую ошибку
the DllRegister Server entry point was not found
, когда пытаюсь зарегистрировать DLL с помощьюregsvr32
Можно ли использовать его без регистрации в regsvr32
?
CLSID
— это буквенно-цифровая строка в следующем формате XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX. Что вы подразумеваете под DLL, готовой к COM-взаимодействию? - person David Laberge   schedule 21.12.2011CLSID
(я думаю) технически является UUID, и, возможно, его нужно обернуть в{}
при использовании в этом контексте - person DaveRandom   schedule 21.12.2011the DllRegister Server entry point was not found
, означает, что что-то не так с вашей DLL. Убедитесь, что вы правильно определили точки входа и экспортировали таблицы. Не идите дальше, пока не исправите эту ошибку. - person Hossein   schedule 11.01.2012clsid
— единственный способ, которым ваш код распознает DLL, вы должны это сделать. Для COM PHP также необходимо зарегистрировать. Убедитесь, что вы реализовали DllRegister и экспортировали его. Вы должны рассказать, что вы уже пробовали (исходный код DLL и PHP). - person Hossein   schedule 11.01.2012