За последние 24 часа нас посетили 15909 программистов и 1501 робот. Сейчас ищут 782 программиста ...

Создание своего расширения для РНР

Тема в разделе "Прочие вопросы по PHP", создана пользователем MoZart, 28 июн 2010.

  1. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Мда, весело тут =)
     
  2. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    MoZart
    то что вы хотите написать уже написано давно
     
  3. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Простите, Как понимать Ваше сообщение?
    Вы имеете ввиду, что то расширение, которое я хочу написать уже имеется в числе реализованных библиотек?
    Если так, то смею Вас заверить, что вы заблуждаетесь. Данная библиотека задумывается исключительно для реализации одного единственного сайта и содержит в себе конкретные функции с конкретными алгоритмами. Функции данной тематики никому другому не интересны, а как следствие не реализованы. А если и реализованы, то их всё равно придётся дорабатывать под конкретную задачу.

    Если Вы можете помочь в решении проблемы, затронутой в данной теме - буду благодарен.
     
  4. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Брр, какой бред тут понаписали.
    Скажи своим чудо-мега-программистам, чтобы собрали DLL и приписали к ней маленькую консольную оболочку, с которой можно работать из командной строки: чтобы работала с потоков ввода-вывода.
    Со стороны РНР обращаться к этим библиотечным функциям через оболочку посредством функций exec, system или постоянной работы - proc_ open.
    Для этого не требуется свехзнаний, для этого требуется только наличие формальной логики.
     
  5. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    или заплатите наконец своим программистам ))
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    эта DLL есть?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    есть прога видимо.

    а что такое МГП? =)
     
  8. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Сказал. Получил ответ, что это почти то же самое по скорости, что и работа через файл, а это не желательно.
     
  9. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    МГП - МеГаПрограмма)))
     
  10. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Этой DLL Ещё нет. Есть МГП (МеГаПрограмма), которая делает всё что нужно, а результат выводит на экран.
    Из функций в ней реализованных нужно составить DLL.
     
  11. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Всё очень весело, только это я у них работаю. Разрабатываю сайт, блин...
     
  12. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Я то тут при чем? o_0 xD
    Я раскусил вашу идею - хотите CGI-приложение, написаные на C++, перенести в PHP?
     
  13. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    MoZart
    можете сказать чем занимается эта программа?Вдруг ее на пхп можно будет переписать без всяких dll
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ЗЫ: а че, под виндой чтоли нельзя отловить консольный вывод проги? ммм? Странно. Раз она и так работает, то может просто открывать на нее поток или что там, в который она будет писать? Хз как это делается, но вполне должно же как-то это делаться, раз делается у других и в других случаях.
     
  15. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
  16. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Не уверен, что понимаю... Что такое CGI-приложение?
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  18. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Нет, прога не является CGI.
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А что тогда она делает "все готовое" или как там?
     
  20. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Она вообще с вебом не связана?
     
  21. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Всё готовое.
    Все обращения к БД, вычисления, формирование выводимой информации происходит внутри МГП.
     
  22. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    В данный момент никак не связана. Разве что исходные значения получает из БД...
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А выводит она что и куда? =)
     
  24. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    В данный момент кучу постоянно обновляющихся изображений и графиков.
    Выводится исключительно на экран монитора.

    Никакие результирующие или промежуточные данные НИКУДА НЕ СОХРАНЯЮТСЯ. Полностью закрытая прога. Все вычисления внутри. Типа взяли 200 значений из БД, подумали минутку, вывели изображение, через 5 секунд обновили изображение(ибо все промежуточные данные объявлены в проге и висят в её памяти - поэтому и быстро). Типа того...
     
  25. MoZart

    MoZart Активный пользователь

    С нами с:
    28 июн 2010
    Сообщения:
    47
    Симпатии:
    0
    Уважаемые эксперты, Давайте вернёмся к теме.
    Вот что я попробовал сделать и что из этого получилось.
    1. поставил MS Visual 2005;
    2. Исходники РНР у меня были;
    3. Скопировал и переименовал каталог skeleton на navext в папке ext;
    4. Открыл в MS Visual 2005 файл skeleton.dsp. Это проект.
    5. Переименовал файлы skeleton.c в navext.c и php_skeleton.h в php_navext.h, добавил их в проект;
    6. Переименовываете во всех местах где нашёл extname и EXTNAME на navext соблюдая регистр;
    7. Положил файл php5ts.dll в каталог проекта;
    8. На вкладке Build зашёл в Configuration Manager. Выбрал значение Active Solution Configuration равное Debug_TS. Нажал Build;
    9. Повторил эту же процедуру со значением Active Solution Configuration равное Reliese_TS;
    10. В Error-list появились ошибки Error C2466: Cannot allocate an array of constant size 0 в юнитах stat.inl (строки 44, 49) и utime.inl (строки 39, 44, 49, 78);
    11. На этом процесс застопорился. Файл php5ts_debug.lib не появился. Не появилась и нужная библиотека.

    В связи с этим у меня конкретные вопросы:
    1. Что неправильно в моих действиях?
    2. Что это за ошибки? Отчего они? Как их избежать?
    3. Как исправить ситуацию? что делать дальше?

    Заранее благодарен за помощь!

    Прилагаю Лог-файлы.

    Лог 1.
    • Build Log


      Rebuild started: Project: navext, Configuration: Debug_TS|Win32

      Command Lines


      Creating temporary file "d:\Мои документы\дистрибутивы\Программирование\Сайты\PHP\php-5.2.12\ext\navext\Debug_TS\RSP00000923603624.rsp" with contents
      [
      /O2 /Ob1 /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\..\bindlib_w32" /I "..\..\TSRM" /D "ZEND_DEBUG=1" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "EXTNAME_EXPORTS" /D "COMPILE_DL_EXTNAME" /D "ZTS=1" /D "ZEND_WIN32" /D "PHP_WIN32" /D "HAVE_EXTNAME=1" /D "LIBZEND_EXPORTS" /D "_VC80_UPGRADE=0x0600" /D "_WINDLL" /D "_MBCS" /GF /FD /EHsc /MDd /Gy /Fp".\Debug_TS/skeleton.pch" /Fo".\Debug_TS/" /Fd".\Debug_TS/" /W3 /c /TC ".\navext.c"
      ]
      Creating command line "cl.exe @"d:\Мои документы\дистрибутивы\Программирование\Сайты\PHP\php-5.2.12\ext\navext\Debug_TS\RSP00000923603624.rsp" /nologo /errorReport:prompt"

      Output Window


      Compiling...
      navext.c
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/stat.inl(44) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/stat.inl(49) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(39) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(44) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(49) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(78) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\wtime.inl(37) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\wtime.inl(43) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(32) : warning C4244: 'function' : conversion from 'time_t' to '__time32_t', possible loss of data
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(32) : warning C4244: 'function' : conversion from 'time_t' to '__time32_t', possible loss of data
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(38) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(44) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(51) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(57) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(64) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(69) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(81) : warning C4133: 'function' : incompatible types - from 'time_t *' to '__time32_t *'
      .\navext.c(37) : warning C4090: 'initializing' : different 'const' qualifiers

      Results


      Build log was saved at "file://d:\Мои документы\дистрибутивы\Программирование\Сайты\PHP\php-5.2.12\ext\navext\Debug_TS\BuildLog.htm"
      navext - 6 error(s), 12 warning(s)

    Лог 2.


    • Build Log


      Build started: Project: navext, Configuration: Release_TS|Win32

      Command Lines


      Creating temporary file "d:\Мои документы\дистрибутивы\Программирование\Сайты\PHP\php-5.2.12\ext\navext\Release_TS\RSP00000723604080.rsp" with contents
      [
      /O2 /Ob1 /I "..\.." /I "..\..\main" /I "..\..\Zend" /I "..\..\..\bindlib_w32" /I "..\..\TSRM" /D "ZEND_DEBUG=0" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_USRDLL" /D "EXTNAME_EXPORTS" /D "COMPILE_DL_EXTNAME" /D "ZTS=1" /D "ZEND_WIN32" /D "PHP_WIN32" /D "HAVE_EXTNAME=1" /D "LIBZEND_EXPORTS" /D "_VC80_UPGRADE=0x0600" /D "_WINDLL" /D "_MBCS" /GF /FD /EHsc /MD /Gy /Fp".\Release_TS/skeleton.pch" /Fo".\Release_TS/" /Fd".\Release_TS/" /FR".\Release_TS\" /W3 /c /TC ".\navext.c"
      ]
      Creating command line "cl.exe @"d:\Мои документы\дистрибутивы\Программирование\Сайты\PHP\php-5.2.12\ext\navext\Release_TS\RSP00000723604080.rsp" /nologo /errorReport:prompt"
      Creating temporary file "d:\Мои документы\дистрибутивы\Программирование\Сайты\PHP\php-5.2.12\ext\navext\Release_TS\RSP00000823604080.rsp" with contents
      [
      /o ".\Release_TS/skeleton.bsc"

      ".\release_ts\navext.sbr"
      ]
      Creating command line "bscmake.exe @"d:\Мои документы\дистрибутивы\Программирование\Сайты\PHP\php-5.2.12\ext\navext\Release_TS\RSP00000823604080.rsp" /nologo"

      Output Window


      Compiling...
      navext.c
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/stat.inl(44) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/stat.inl(49) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(39) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(44) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(49) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\sys/utime.inl(78) : error C2466: cannot allocate an array of constant size 0
      c:\Program Files\Microsoft Visual Studio 8\VC\include\wtime.inl(37) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\wtime.inl(43) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(32) : warning C4244: 'function' : conversion from 'time_t' to '__time32_t', possible loss of data
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(32) : warning C4244: 'function' : conversion from 'time_t' to '__time32_t', possible loss of data
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(38) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(44) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(51) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(57) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(64) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(69) : warning C4133: 'function' : incompatible types - from 'const time_t *' to 'const __time32_t *'
      c:\Program Files\Microsoft Visual Studio 8\VC\include\time.inl(81) : warning C4133: 'function' : incompatible types - from 'time_t *' to '__time32_t *'
      .\navext.c(37) : warning C4090: 'initializing' : different 'const' qualifiers
      Creating browse information file...
      Microsoft Browse Information Maintenance Utility Version 8.00.50727
      Copyright (C) Microsoft Corporation. All rights reserved.

      Results


      Build log was saved at "file://d:\Мои документы\дистрибутивы\Программирование\Сайты\PHP\php-5.2.12\ext\navext\Release_TS\BuildLog.htm"
      navext - 6 error(s), 12 warning(s)