Здравствуйте, я хочу сканировать аудио-видео файлы и хранить их метаданные в базе данных с помощью php. Я нашел эту оболочку командной строки, которая использует TagLib.dll, скомпилированную разработчиками banshee для выполнения этой задачи. Он отлично работает, но ограничивается реализованными функциями. Я хочу получить доступ непосредственно к dll-методам через PHP.
В PHP у нас есть функция (DOTNET), которая позволяет мне создать экземпляр класса из сборки .Net и вызвать его методы и получить доступ к его свойствам, подобным этому
/*$obj = new DOTNET("assembly", "classname");*/
$stack = new DOTNET("mscorlib", "System.Collections.Stack");
$stack->Push(".Net");
$stack->Push("Hello ");
echo $stack->Pop() . $stack->Pop();
//Returns string(10) "Hello .Net";
Здесь источники проекта Taglib # в github
Я видел много вопросов родственников для PHP-DLL-COM и есть несколько рекомендаций:
- Сделать dll comVisible;
- Зарегистрируйте dll с помощью
regsvr32
; - Используйте файл определения модуля, похожий на
;
;
DESCRIPTION "Simple COM object"
EXPORTS
DllGetClassObject PRIVATE
DllCanUnloadNow PRIVATE
DllRegisterServer PRIVATE
DllUnregisterServer PRIVATE
Мой вопрос: Как я могу создать DLL и использовать его метод через PHP?
Моя конфигурация:
-
OS
Windows Server 2012 R2 Standard Edition i586
-
Apache:
Apache/2.2.21 (Win32) DAV/2 PHP/5.4.42 mod_ssl/2.2.21 OpenSSL/0.9.8r
-
PHP
Версия PHP: 5.4.42
Arch: x86
Компилятор: MSVC9 (Visual С++ 2008)
Поддержка COM: включен Поддержка DCOM: отключена
Поддержка .Net -
Microsoft Visual Studio 2013