Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2015, 12:42   #1
Adult_Master
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 63
По умолчанию Использование Delphi DLL в PHP коде

Здравствуйте !
Есть клиент на Delphi и сервер на PHP, хочу часть кода вынести в DLL, при этом нужно что бы DLL могла работать как на PHP стороне так и с самим приложением под Windows. Смотрел в сторону DynamicWrapperX но чот так и не получилось запустить это дело под Денвером, я так понял что наилучшее решение это использование COM объектов.
Может есть у кого простейший пример написания такой DLL и вызова её в PHP ?
Adult_Master вне форума Ответить с цитированием
Старый 27.10.2015, 13:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему в PHP нет возможности юзать DLL... по крайней мере если она не СОМ сервер, то наврядли.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.10.2015, 13:46   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Чёт не понимаю, почему бы просто запросами кидаться нельзя?
Человек_Борща вне форума Ответить с цитированием
Старый 27.10.2015, 14:37   #4
Adult_Master
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 63
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
По-моему в PHP нет возможности юзать DLL... по крайней мере если она не СОМ сервер, то наврядли.
DynamicWrapperX содержит в себе COM сервер, и позволяет юзать сторонние DLL, есть даже пример по вызову стандартных WinAPI функций, но у меня не получилось его повторить, PHP пишет:

Код HTML:
Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `DynamicWrapperX'
Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Чёт не понимаю, почему бы просто запросами кидаться нельзя?
Дело в том что мне нужно реализовать две версии ПО Онлайн и Оффлайн, онлайн шлёт запросы на сервер, сервер их обрабатывает и отправляет клиенту. В Оффлайн же варианте клиент сам обрабатывает данные, вот именно обработку этих данных я и хочу вынести в DLL. Помимо всего прочего необходимо привязывать Клиента и Сервер к железу на котором они запускаются, и тут опять как нельзя кстати подходит использование такой DLL, ну и плюс ко всему прочему такой способ позволяет скрыть от "любопытных глаз" ту часть кода которая производит расчёты.

Последний раз редактировалось Adult_Master; 27.10.2015 в 14:42.
Adult_Master вне форума Ответить с цитированием
Старый 27.10.2015, 15:20   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Failed to create COM object
Дык СОМ объект и функции DLL это немного разные вещи. СОМ регистрируется в системе как ActiveX
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.10.2015, 18:17   #6
Adult_Master
Пользователь
 
Регистрация: 04.04.2011
Сообщений: 63
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Дык СОМ объект и функции DLL это немного разные вещи. СОМ регистрируется в системе как ActiveX
Это я понимаю, я зарегал его в системе, затем пытался вызвать в PHP:
PHP код:
$com = new COM('DynamicWrapperX');
$com->Register("user32.DLL""MessageBoxA""i=hssl""f=s""r=l");
$com->MessageBoxA(0,'Текст','Заголовок',0); 
т.е. сначала вызываем зареганный ранее DynamicWrapperX, затем через его Register регистрируем функцию из своей библы и далее вызываем её, в примере вызывается мессаджбокс из user32.DLL, но как я уже написал у меня данный пример не пошёл, да и не хочется иметь прокладку в виде DynamicWrapperX, потому и решил поднять свой COM.

На phpclub есть вот такая цитата:
Код HTML:
1. Я построил DLL для расчётов. Есть ли способ запустить эту DLL под PHP ?
Если это простая DLL, то пока нет способа запустить её из PHP. Если DLL-библиотека содержит COM-сервер, вы можете получить к ней доступ, если она реализует интерфейс IDispatch.
Просто мне бы примерчик как поднять COM через IDispatch в Delphях )
Adult_Master вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование библиотек (dll) в RAD Studio, написанных в Delphi 7 Jetro Общие вопросы Delphi 7 29.06.2011 15:30
Использование функций в коде программы vl@d0s Общие вопросы C/C++ 6 14.12.2010 22:59
Использование Dll xmaksimca Общие вопросы Delphi 0 16.05.2010 18:36
Использование dll Gromsky Общие вопросы C/C++ 1 10.02.2009 21:06
использование SQL запросов в коде VBA b00s Microsoft Office Access 3 26.04.2008 13:40