[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP и dll
toro
Есть dll написанная на С (под win приложения). Можно ли PHP заставить работать с такой библиотекой ?



Спустя 12 минут, 47 секунд (9.02.2010 - 13:26) Oyeme написал(а):
You need to copy the dll in the extension directory of your PHP and then enter and modify your php.ini file.

you should serch there for "extension" and find the proper directory and then add your extenstion. also in php.ini you should add your dll name in the extension area.

The php.ini file has a lot of comment and it is easy to modify it. After you set your extension you need to restart you apache server.

Спустя 6 минут, 40 секунд (9.02.2010 - 13:33) toro написал(а):
Немножко не про это вопрос. Т.е. всё равно спасибо, но спрашивал я про другое. dll писалась не про PHP. РНР сможет обратиться к функциям зашитым в этой библиотеке? Ему будут понятны названия функций на С и т.д.

Спустя 10 минут, 6 секунд (9.02.2010 - 13:43) Oyeme написал(а):
Sure, you can build your own extensions dll.
Можешь - в другом случаи тебе придёться использовать СOM компонент.

Ему уже всё равно какой код в его контейнере.
Классы и методы ему будут понятны.

Спустя 18 часов, 55 минут, 9 секунд (10.02.2010 - 08:38) Alex VoDevil написал(а):
А мне вот что интересно... Есть ли возможность работать с классами\функциями сторонней dll на сях, но при этом не трогать php.ini? Т.е. прямо в ходе выполнения скрипта, взять да и каким-то магическим образом подключить dll библиотеку функций. Ну не штатными средствами php конечно, но всеже?

Спустя 3 часа, 42 минуты, 20 секунд (10.02.2010 - 12:21) toro написал(а):
Можно поподробнее на счёт работы с dll.

Например в VB обращение к функции AddNumbers из библиотеки Example.dll выглядит так (пример из wiki):
Option Explicit

' Указываем, что функция находится во внешней DLL.
Declare Function AddNumbers Lib "Example.dll" _
(ByVal a As Double, ByVal b As Double) As Double

' Используем функцию как обычно
Sub Main()
Dim Result As Double
Result = AddNumbers(1, 2)
Debug.Print "The result was: " & Result
End Sub


А как обращаться к фунциям из PHP? Как передавать параметры?

Спустя 5 часов, 1 минута, 26 секунд (10.02.2010 - 17:22) Alex VoDevil написал(а):
2 toro: Вы наверное не совсем поняли, то о чем говорит Oyeme, это подключение dll библиотек расширений. Они прописываются в php.ini на виндах, или при сборке на nix'ах. Подключаются они ядром во время инициализации интерпретатора (При старте php проще говоря). А обращаться к их функциям можно как к любым другим. К примеру когда вы подключаетесь к БД при помощи функции mysql_connect , фактически вы обращаетесь к библиотеке mysql.dll, ибо эта функция описана именно там.

Мой же вопрос состоит в том, можно ли подключить dll библиотеку прямо в ходе выполнения скрипта. Ну или хотябы средствами .htaccess и иже с ним... И тут вы уже дублируете мой вопрос.

Спустя 2 дня, 9 часов, 24 минуты, 52 секунды (13.02.2010 - 02:47) Oyeme написал(а):
не уверен что так возможно,если не ошибаюсь.
В том же C# - подключаешь и работаешь.
Она содержит всего лишь ссылку на библиотеку.


Спустя 10 часов, 25 минут, 52 секунды (13.02.2010 - 13:13) toro написал(а):
Цитата (toro @ 10.02.2010 - 12:21)
Мой же вопрос состоит в том, можно ли подключить dll библиотеку прямо в ходе выполнения скрипта. Ну или хотябы средствами .htaccess и иже с ним... И тут вы уже дублируете мой вопрос.
По моему можно. Через функцию dl(). Единственное, в php.ini в секции exstension_dir надо задать каталог где РНР должен искать подключаемые dll. А далее в любом месте dl(xxxxx.dll);

Спустя 22 часа, 16 минут, 59 секунд (14.02.2010 - 11:30) Alex VoDevil написал(а):
Да, точно, http://www.php.su/functions/?dl . Только там про php4 речь идет, но в пятом врядли эту функцию могли убрать.


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.