Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Запуск DLL в отдельном процессе  (Прочитано 7550 раз)
0 Пользователей и 1 Гость смотрят эту тему.
PSD
Главный специалист

ru
Offline Offline
Пол: Мужской

« : 18-09-2006 10:04 » 

Есть свои плагины написанные как DLL  с определнным набором интерфесных функций.... требуется запускать их как inproc так и в качестве отденого процесса. Писать свой стартапп не хочется, есть ли в  винде механизм для запуска DLL в отдельном потоке, вродикак DLLHost что то умее но вся дока поне му ссылается на IIS ....
 
Записан

Да да нет нет все остальное от лукавого.
Rulik
Помогающий

ru
Offline Offline

« Ответ #1 : 18-09-2006 10:39 » 

Я думаю rundll.exe должен тебе помочь.
Конкретно я думаю написано в MSDN.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #2 : 18-09-2006 15:28 » 

Только не rundll, а rundll32. Насколько я знаю форма запуска такая.

rundll32 [Твоя ДЛЛ],[Название функции]  [параметры через запятую]
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
PSD
Главный специалист

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 19-09-2006 04:17 » 

Факт помогла, теперь чешу репу не всилах понять что за ботва у меня происходит.....

Есть DLL в которой 4 функции
DLS_Plg_Run()
DLS_Plg_Run_as_ext() //модификация DLS_Plg_Run() без возврата управления  для запуска через rundll
DLS_Plg_Stop()
DLS_Plg_Pause()

DLS_Plg_Run()
DLS_Plg_Run_as_ext()
создают объект  в куче и передают ему управление, тот в свою очередь производит чтение настроек и запускает рабочий поток.  разница между ними в том что    DLS_Plg_Run_as_ext()  пред return делает
 WFSO(hTreadeWork,INFINITE).

Но при запуске плагина из rundll все рабаотает стабильно, при динамической линковке   dll и запуске в нутри процеса сервера происходит скоротечный и "беспричинный" (в смысле не один лог и ни один эксепшон не отрабатывает) крах. Едиственое что на водит на раз мышление  это код завершения 0xc000013a.

Записан

Да да нет нет все остальное от лукавого.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines