Автор Тема: CGI/PERL + DLL  (Прочитано 3137 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bugs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
CGI/PERL + DLL
« : 31 Марта 2004, 17:26:50 »
Привет
Вопрос в следующем :
Есть CGI скрипт на perl\'e, он подключает библиотеку DLL и вызывает из нее одну из функций, которая запускает виндовс-приложение. В качестве результата функция возвращает хендл открытого окна.
 Из командной строки скрипт нормально выполняется. А вот из-под веб-сервера вместо хендла возвращается ноль и ошибка : "Не удается найти указанный файл" (приложение-то кстати все же запускается но совсем не так как нужно)

С настройками сервера все в порядке, все скрипты работают, успешно подключают и используют другие dll( которые не запускают приложений)

Может быть у вас есть какие-нибудь предположения что же здесь не так?

P.S. Я все больше склоняюсь к тому что все дело в правах сервера, что он не дает ему запуститься из соображений безопасности : ( . В настройках убрал анонимный доступ, настроил чтобы скрипт запускался под администратором.
Может еще как можно настроить?
Сервер IIS 5.0 хотя какой именно не имеет значения
« Последнее редактирование: 31 Марта 2004, 17:40:44 от bugs »

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
CGI/PERL + DLL
« Ответ #1 : 31 Марта 2004, 17:42:43 »
будешь кросспостить - выключу
AS IS...

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
CGI/PERL + DLL
« Ответ #2 : 31 Марта 2004, 18:07:39 »
bugs
покажи кусок кода где определяется хендл.
The documentations is your friend

Оффлайн bugs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
CGI/PERL + DLL
« Ответ #3 : 31 Марта 2004, 18:41:09 »
DLL написана не мной, поэтому я в ней особо не разбирался
Но исходники все есть, вот та самая функция которая запускает приложение и возвращает хендл.
 Правда не знаю на сколько будет полезен вырванный кусок кода

HWND32 MGAPI MG_OpenSession(
LPCSTR   lpParamStr,
INT   nShow)
{
  ..
}
« Последнее редактирование: 31 Марта 2004, 19:40:32 от bugs »

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
CGI/PERL + DLL
« Ответ #4 : 31 Марта 2004, 19:24:56 »
я имел ввиду перловый код
The documentations is your friend

Оффлайн bugs

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
CGI/PERL + DLL
« Ответ #5 : 31 Марта 2004, 19:39:46 »
Я пробовал из под веб-сервера запускать exe-шник который подключает эту DLL и вызывает функцию, возвращающую хендл. Результат тот же, из командной строки все ок, из под сервера - нули и ошибки

Так что скорее дело в принципе, а не в языке

use Win32::API;
use Win32::API::Prototype;

ApiLink(\'mglue32.dll\', \'HANDLE MG_OpenSession(LPSTR lpParamStr, int nShow)\');

$handle=MG_OpenSession("NULL",SW_NORMAL);
print "$handle\\n";

P.S. пожалуйста, перемести эту тему в раздел веб-технологии
« Последнее редактирование: 31 Марта 2004, 19:46:20 от bugs »

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
CGI/PERL + DLL
« Ответ #6 : 31 Марта 2004, 19:51:09 »
может путь полный ему нужен?
посмотри в модуле что он делает с путем
The documentations is your friend

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28