+ Ответить в теме
Показано с 1 по 30 из 30
  1. #1
    Радуга! Аватар для haker
    Регистрация
    11.03.2010
    Адрес
    Россия 38
    Сообщений
    1,740

    возможность вызова внешник dll

    Тут нарыл одну ссылку отличную
    http://www.borncity.com/web/WSHBazaar1/WSHDynaCall.htm
    тут говориться о COM объекте, который способен вызывать DLL-ки... а PHP способен работать с COM
    чтоб это заработало, но сначала скачать этот архив DynaWrap..zip
    внутри находиться файл DynaWrap.dll. Распакуем его куда нить
    После того как распаковали нажимаем Ctrl+W и вводим вот что
    Код:
    RegSvr32.exe "<path>DynaWrap.dll"
    вместо <path> надо вписать путь до папки, куда распаковали
    например я распаковал в "C:/Windows/System32/"
    значит команда будет вот такая
    Код:
    RegSvr32.exe "C:/Windows/System32/DynaWrap.dll"
    Com Объект DynamicWrapper имеет одну для нас важную функцию, это
    PHP код:
    $com_object->Register('name.dll','NameFunc','i=<тут перечисляем типы каждого параметра>','f=<тут способ вызова>','r=<тут тип возвращаемого значения>'); 
    'f=<тут способ вызова>'
    тут два вариант, это
    'f=s' - stdcall
    'f=c' - cdecl
    'i=<тут перечисляем типы каждого параметра>' и 'r=<тут тип возвращаемого значения>'
    типы:
    a - IDispatch
    c - char
    d - double
    f - float
    k - IUnknown
    h - long (HANDLE)
    l - long (integer)
    s - string
    t - short
    u - integer
    w - wide string


    Пример вызова функции MessageBoxA:
    PHP код:
    $com = new COM("DynamicWrapper");
    $com->Register("user32.DLL""MessageBoxA""i=hssl""f=s""r=l");
    $com->MessageBoxA(0,'Текст','Заголовок',0); 
    АдМиНы и МоДеРы среди нас!! Так что будьте вежливы, а то можете получить бан
    http://system-x-files.ru/ - мой блог
    Заказ работ для DevelStudio.

  2. #2
    Пользователь Аватар для santoni7
    Регистрация
    08.05.2010
    Сообщений
    156
    спс. а как создать сами длл?
    I don't know who my grandfather was; I am much more concerned to know what his grandson will be. Abraham Lincoln

  3. #3
    Опытный Аватар для bwc
    Регистрация
    25.06.2010
    Адрес
    Иркутск
    Сообщений
    326
    Цитата Сообщение от santoni7 Посмотреть сообщение
    спс. а как создать сами длл?
    Для этого по любому потребуется другая среда разработки, DevelSt для этого пока не подходит.

  4. #4
    Опытный Аватар для bwc
    Регистрация
    25.06.2010
    Адрес
    Иркутск
    Сообщений
    326
    http://php.net/manual/de/ref.w32api.php
    Вот еще материал на эту тему...

  5. #5
    Радуга! Аватар для haker
    Регистрация
    11.03.2010
    Адрес
    Россия 38
    Сообщений
    1,740
    Цитата Сообщение от bwc Посмотреть сообщение
    http://php.net/manual/de/ref.w32api.php
    Вот еще материал на эту тему...
    это немного не то... то что я скинул, самый норм вариант... тут бы ещё сделать оболочку, чтоб легче работать и чтоб автоматически регистрировалась во время запуска и все будет пучком
    Последний раз редактировалось haker; 15.03.2011 в 04:09.
    АдМиНы и МоДеРы среди нас!! Так что будьте вежливы, а то можете получить бан
    http://system-x-files.ru/ - мой блог
    Заказ работ для DevelStudio.

  6. #6
    Опытный Аватар для bwc
    Регистрация
    25.06.2010
    Адрес
    Иркутск
    Сообщений
    326
    Я писал компонент для работы с dll через сом, потом забил на это, после того как Ты меня на 3 дня забанил...

  7. #7
    Радуга! Аватар для haker
    Регистрация
    11.03.2010
    Адрес
    Россия 38
    Сообщений
    1,740
    Цитата Сообщение от bwc Посмотреть сообщение
    Я писал компонент для работы с dll через сом, потом забил на это, после того как Ты меня на 3 дня забанил...
    гыыы а в чем проблема то была? ты ведь сказал что можно было только 1 параметр передать, а тут дофига
    АдМиНы и МоДеРы среди нас!! Так что будьте вежливы, а то можете получить бан
    http://system-x-files.ru/ - мой блог
    Заказ работ для DevelStudio.

  8. #8
    Опытный Аватар для bwc
    Регистрация
    25.06.2010
    Адрес
    Иркутск
    Сообщений
    326
    нет там никаких проблем, один параметр тоько потому что не все с dll общаются на ты...
    так было решено что одного или двух параметра хватит, а может и вообще без параметров как и говорил в той теме

  9. #9
    Радуга! Аватар для haker
    Регистрация
    11.03.2010
    Адрес
    Россия 38
    Сообщений
    1,740
    Цитата Сообщение от bwc Посмотреть сообщение
    нет там никаких проблем, один параметр тоько потому что не все с dll общаются на ты...
    так было решено что одного или двух параметра хватит, а может и вообще без параметров как и говорил в той теме
    ну тогда жду твоего дополнения... после я его дополню и сделаю чтоб среда его нормально кушала и автоматически подключала и пусть все же будет любое кол-во параметров
    АдМиНы и МоДеРы среди нас!! Так что будьте вежливы, а то можете получить бан
    http://system-x-files.ru/ - мой блог
    Заказ работ для DevelStudio.

  10. #10
    Опытный Аватар для bwc
    Регистрация
    25.06.2010
    Адрес
    Иркутск
    Сообщений
    326
    Цитата Сообщение от haker Посмотреть сообщение
    гыыы а в чем проблема то была? ты ведь сказал что можно было только 1 параметр передать, а тут дофига
    Может нам с Тобой выложить сюда побольше примеров работы с dll, хотя, Ладно, на этой неделе будет время, что-нибудь напишу.

  11. #11
    Пользователь Аватар для Nis*
    Регистрация
    17.08.2011
    Адрес
    Сообщений
    142
    в чем проблема. вот скрин

  12. #12
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    На скрине не видно не шиша. Можно в нормальном размере?

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  13. #13
    Пользователь Аватар для Nis*
    Регистрация
    17.08.2011
    Адрес
    Сообщений
    142
    вот другой скрин

  14. #14
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    а код где?

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  15. #15
    Пользователь Аватар для Nis*
    Регистрация
    17.08.2011
    Адрес
    Сообщений
    142
    PHP код:
    RegSvr32.exe "C:/Windows/System32/DynaWrap.dll";
    $com = new COM("DynamicWrapper");
    $com->Register("user32.DLL""MessageBoxA""i=hssl""f=s""r=l");
    $com->MessageBoxA(0,'Текст','Заголовок',0); 
    я пробовал так и еще так
    PHP код:
    shel_exec(RegSvr32.exe "C:/Windows/System32/DynaWrap.dll");
    $com = new COM("DynamicWrapper");
    $com->Register("user32.DLL""MessageBoxA""i=hssl""f=s""r=l");
    $com->MessageBoxA(0,'Текст','Заголовок',0); 

  16. #16
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    А с чего вы взяли что у вас есть вот этот "C:/Windows/System32/DynaWrap.dll" файл?
    Вы его скачали перед этим и положили туда перед тем как регистрировать?

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  17. #17
    Пользователь Аватар для Nis*
    Регистрация
    17.08.2011
    Адрес
    Сообщений
    142
    да. я даже специально закинул в system32

  18. #18
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    с именем не напутали? Файл то называется dynwrap.dll а не dynawrap.dll

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  19. #19
    Пользователь Аватар для Nis*
    Регистрация
    17.08.2011
    Адрес
    Сообщений
    142
    у меня он называется dynawrap.dll

  20. #20
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    А с чего он вдруг стал так называться? В архиве по ссылке лежит файл dynwrap.dll
    И ещё, на кой фиг вы его каждый раз регистрируете?
    Вот эту команду
    regsvr32 dynwrap.dll /c
    надо было выполнить ручками в командной строке 1 раз в жизни самому в той самой папочке где лежит длл.
    так что выпримляйте руки и не занимайтесь ерундой, скачайте файл по ссылке в первом сообщении темы (архив тот что для winNT а не для Win95) распакуйте архив куда нибудь типа c:\windows\dinwrap зайдите в папку и запустите в ней make.bat (он сам всё сделает

    а потом в крограмме код:

    PHP код:
    $com = new COM("DynamicWrapper"); 
    $com->Register("user32.DLL""MessageBoxA""i=hssl""f=s""r=l"); 
    $com->MessageBoxA(0,'Текст','Заголовок',0); 
    Отлично работает.

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  21. Пользователь сказал cпасибо:

    Nis* (24.09.2011)

  22. #21
    Пользователь Аватар для Nis*
    Регистрация
    17.08.2011
    Адрес
    Сообщений
    142
    Спасибо большое . че то на этой недели туплю.

  23. #22
    Пользователь Аватар для vacant phobia
    Регистрация
    19.01.2011
    Адрес
    Москва
    Сообщений
    165
    Нажмите на изображение для увеличения
Название: error..png
Просмотров: 28
Размер:	79.8 Кб
ID:	1113

    А ежели такое пишут?

    Психолог - это не профессия, это диагноз.

  24. #23
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    Цитата Сообщение от vacant phobia Посмотреть сообщение
    Вложение 1113

    А ежели такое пишут?
    2 варианта, либо вы не тот враппер скачли, их два, один из которых для Windows 95, либо попробуйте комп перезагрузить.

    Ещё можно попробовать другой враппер использовать, более современный, 2008 года который, а не 1994го.

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  25. #24
    Пользователь Аватар для vacant phobia
    Регистрация
    19.01.2011
    Адрес
    Москва
    Сообщений
    165
    Там проблема с Windows 7 - ругается что у меня якобы нет прав администратора, хотя они на самом деле у меня.

    Психолог - это не профессия, это диагноз.

  26. #25
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    Цитата Сообщение от vacant phobia Посмотреть сообщение
    Там проблема с Windows 7 - ругается что у меня якобы нет прав администратора, хотя они на самом деле у меня.
    Аа это значит вам UAC отключить надо для выполнения процесса регистрации этой длл http://fastvista.ru/content/view/17/
    Потом обратно включить не забудьте.

    Или можете попробовать запустить cmd с правами админа, т.е делается так:
    1) создаёте новый ярлык на рабочем столе, в расположении объекста пишите cmd
    2) правой кнопкой по нему, запустить от имени администратора
    3) через команду d: или c: можно сменить диск, через cd c:\windows перейти в нужную папку, и выполнить регистрацию длл.

    Если ваша программа сама умеет регистрировать длл, тогда запустите однажды просто вашу программу через правую кнопку и пункт запустить от имени администратора.

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  27. #26
    Пользователь Аватар для vacant phobia
    Регистрация
    19.01.2011
    Адрес
    Москва
    Сообщений
    165
    Нет, все равно... Не выходит. Обидно))))

    Психолог - это не профессия, это диагноз.

  28. #27
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    Попробуйте вот эту библиотеку, она новей.
    http://www.script-coding.com/dynwrapx.html
    и зарегистрировать её попробуйте с правами пользователя:
    Код:
    regsvr32.exe /u /i <путь-к-компоненту>\dynwrapx.dll
    Ток не забудьте, в программе она будет вызываться не COM('DynamicWrapper'); а COM('DynamicWrapperX');

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  29. #28
    Пользователь Аватар для vacant phobia
    Регистрация
    19.01.2011
    Адрес
    Москва
    Сообщений
    165
    дык ее и пробую

    Психолог - это не профессия, это диагноз.

  30. #29
    Админ Аватар для vGhost
    Регистрация
    27.07.2011
    Адрес
    Самара
    Сообщений
    2,033
    Тогда попробуйте наоборот более старую либу, из шапки этой темы, кстати винда то какая, случаем не x86_64 XP? А то в инете пишут что такое происходит именно на ней.
    Ток не забудьте деинсталлировать старую либу перед установкой новой. Они хоть и разные имена имеют, но так "на всякий случай"..

    __________________________________________________ ________
    Угу, угу... А потом достал из морозильной камеры - и степлером его, степлером!
    Для новичков
    __________________________________________________ ________
    Я практически совсем не задаю вопросов, не думали почему? Потому что я пользуюсь поиском и всегда нахожу ответы на свои вопросы!

  31. #30
    Пользователь Аватар для vacant phobia
    Регистрация
    19.01.2011
    Адрес
    Москва
    Сообщений
    165
    windows 7 x86

    Психолог - это не профессия, это диагноз.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения