Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Функция динамической компановки
 
 автор: vik_away   (15.11.2004 в 14:50)   письмо автору
 
 

Помогите как c помощью скрипта PHP вызывать функцию динамической компановки

   
 
 автор: cheops   (15.11.2004 в 15:51)   письмо автору
 
   для: vik_away   (15.11.2004 в 14:50)
 

Имеется ввиду вызов библиотек функцией dl()?

   
 
 автор: vik_away   (16.11.2004 в 10:51)   письмо автору
 
   для: cheops   (15.11.2004 в 15:51)
 

Да с помощью скрипта PHP нужно вызывать динамические библиотеки

   
 
 автор: cheops   (16.11.2004 в 11:04)   письмо автору
 
   для: vik_away   (16.11.2004 в 10:51)
 

Хм... а в библиотеках что? Расширения PHP подгружаются следующим образом:
<?php
  dl
(php_mysql.dll);
?>

   
 
 автор: vik_away   (16.11.2004 в 22:21)   письмо автору
 
   для: cheops   (16.11.2004 в 11:04)
 

Имеется C++ оболочка с динамическими библиотеками, PHP скрипт должен вызвать функцию из динамической библиотеки, передав ей определенный набор параметров.

   
 
 автор: cheops   (16.11.2004 в 22:29)   письмо автору
 
   для: vik_away   (16.11.2004 в 22:21)
 

Если честно не знаю. Всегда когда мне нужно было использовать мощь С++, я писал CGI-программы, с которыми клиент работал без посредников (кроме Web-сервера, конечно). Почему нужно взаимодействовать с динамическими библиотеками именно через PHP?

   
 
 автор: vik_away   (16.11.2004 в 22:47)   письмо автору
 
   для: cheops   (16.11.2004 в 22:29)
 

Это как раз и нужно на WEB

   
 
 автор: vik_away   (16.11.2004 в 22:44)   письмо автору
 
   для: cheops   (16.11.2004 в 11:04)
 

Т.е. есть С++ dll экспортирующая одну функцию(может и несколько ф-ий), которая какую-нибудь лабуду на экран печатает и нужно подцепить из PHP скриптом.
Для теста можно любую-произвольную функцию, и не большую dll.

   
 
 автор: cheops   (17.11.2004 в 08:23)   письмо автору
 
   для: vik_away   (16.11.2004 в 22:44)
 

Для этого нужно расширение ffi
<?php
$windows 
= new ffi ("[lib='user32.dll'] int MessageBoxA( int handle, char *text, char *caption, int type );" );
echo 
$windows->MessageBoxA(0"Message For You""Hello World"1);
?>


PS Правда насколько я понял, это не пройдёт с Web-сервером (окошки по-крайней мере), придётся запускать system или обратными кавычками из PHP скрипта, через консольный обработчик PHP.

   
 
 автор: vik_away   (17.11.2004 в 16:51)   письмо автору
 
   для: cheops   (17.11.2004 в 08:23)
 

Выходит ошибка
Fatal error: Class 'ffi' not found in C:\Program Files\Apache Group\Apache2\htdocs\test\test_PHP_1.php on line 2

   
 
 автор: cheops   (17.11.2004 в 22:29)   письмо автору
 
   для: vik_away   (17.11.2004 в 16:51)
 

В php.ini должно быть включено расширение php_ffi.dll
extension=php_ffi.dll


PS Этот зверь не распрастраняется в стандартном дистрибутиве, а идёт в дополнительных расширениях (файл называется pecl-5.0.2-Win32.zip).

   
 
 автор: vik_away   (19.11.2004 в 14:47)   письмо автору
 
   для: cheops   (17.11.2004 в 08:23)
 

А нельзя сделать не большой скрипт PHP4(для примера), чтобы дергал в user32.dll библиотеку и выбрасывал на WEB страничку текст

   
 
 автор: cheops   (19.11.2004 в 23:42)   письмо автору
 
   для: vik_away   (19.11.2004 в 14:47)
 

А что вы хотите извлечь из user32.dll? Пример приведённый выше на Web-сервере работать не будет (т.е. запустить окно на сервере работающем под Windows не получится), он работает только при запуске PHP-скриптов через php.exe имя_скрипта.php.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования