Могу ли я использовать DLL, написанные на C с PHP? - PullRequest
2 голосов
/ 01 апреля 2009

Мы взаимодействуем с оборудованием, разработанным здесь, и предоставляем доступ через Интернет. Прошивка для этого устройства написана на C, и часть этой прошивки составляет около 5000 строк кода, который анализирует огромные двоичные файлы для данных конфигурации, скомпилированных в .dll.

Есть ли какой-нибудь способ, которым я могу получить доступ к .dll, написанному на C, из PHP?

Могу поспорить, что нет, но перед тем, как начать квест на дублирование 5000 строк C в PHP, я решил дать экспертам здесь шанс.

Спасибо всем.

JH

Ответы [ 3 ]

6 голосов
/ 01 апреля 2009

да, вы можете использовать его как расширение php (написанное на C), но вам могут потребоваться некоторые изменения .. и т. Д.

http://devzone.zend.com/node/view/id/1021

Я думаю этот вопрос относится к вашему.

2 голосов
/ 02 апреля 2009

Возможно, вы захотите проверить SWIG , общий инструмент для обёртывания библиотек, чтобы их можно было вызывать из разных языков. SWIG поддерживает PHP, как и Perl и Lua (цели, которые я лично использовал). Цитирование из списка функций на веб-сайте SWIG :

SWIG в настоящее время генерирует код оболочки для восемнадцати различных целей Языки:

  • Allegro CL
  • C #
  • CFFI
  • CLISP
  • Куриное
  • Коварство
  • Java
  • Lua
  • Modula-3
  • Mzscheme
  • OCAML
  • Octave
  • Perl
  • PHP
  • Python
  • R
  • рубин
  • Tcl
  • UFFI

В дополнение к этому, дерево разбора можно экспортировать как XML и Lisp S-выражение. Экспериментальная работа также доступно для модуля Pike.

Некоторые его функции зависят от серверной поддержки в генераторах оболочек для каждого языка, но в целом они предоставляют простые в использовании оболочки для передачи всех типов значений простых данных в функции и из функций. Там, где у целевого языка есть концепция, он обычно может отображать и объектные модели.

1 голос
/ 01 апреля 2009

Не могли бы вы просто скомпилировать нужные вам части DLL в исполняемый файл, запустить его из php и использовать результаты?

Что-то вроде

$data = `someprogram --options`

Тогда просто используйте данные как хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...