Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› Подключение через dll чужого процесса |
Посл.ответ | Сообщение |
|
Создано: 01 февраля 2007 23:35 · Личное сообщение · #1 Проблема с DLL. 1. Есть DLL (чужая). Она устанавливает соединение с сервером по паролю. Хранит у себя данные об этом соединении и позволяет передаватьполучать информацию, указав номер этого соединения. 2. Есть программа, которая грузит эту DLL и устанавливает соединение с сервером. 3. При попытке проделать пункт 2 из другой программы DLL сообщает, что соединение уже установлено и подключаясь вышибает подключение первой программы. 4. При попытке передать данные из другой программы, указав номер соединения, выдается сообщение, что о таком соединении она ничего не знает. Оно и понятно - инфа о соединении лежит принадлежит памяти первого процесса и не разделяется меж процессами. Нужно. Подключить программу №2 через уже запущенную dll. Исходников dll нет. Написать для нее wrapper можно. Я вижу только такой вариант. Сервис-wrapper, грузящий dll при старте ОСи. dll-wrapper для программы №1 обращающийся к сервису. и такой же dll-wrapper для программы №2. Беда в том, что dll принимает в качестве аргументов функций указатели. А значит мне придется производить перекопирование памяти в dll-wrapper'ах. (А можно ли определить размер этих аргументов?). Гемор и не факт что получится. Может есть вариант проще?!!!!! {есть у меня склонность все усложнять} ![]() |
|
Создано: 01 февраля 2007 23:50 · Личное сообщение · #2 |
|
Создано: 02 февраля 2007 00:09 · Личное сообщение · #3 |
|
Создано: 02 февраля 2007 00:32 · Личное сообщение · #4 |
|
Создано: 02 февраля 2007 01:13 · Личное сообщение · #5 Я не уверен, что в этом будет смысл. Есть ограничения: 1. Программа №1 - сервис под админом. 2. Программа №2 - под клиентской записью и должна подкл/откл. динамически. 3. Экземпляров Программы №2 может быть несколько и должна быть обеспечена их совместная работа. 4. Хорошо бы, чтобы все это удовольствие работоло без терминалов и удаленных рабочих столов. Remoting короче. Мне понравился ответ на wasm.ru "юзать RPC. т.е. один процесс грузит твою длл и является RPC сервером. остальные (программы N1 N2) являются RPC клиентами. большую часть кода сгенерит MIDL. руками останется написать .def файл и еще DllMain(). в качестве халявного бонуса будет можно запускать проги на разных компах. " by kropalik Было бы идеально, если бы у меня был опыт в RPC. Так что ищу лит-ру и прощаюсь с выходными. ![]() |
|
Создано: 02 февраля 2007 04:30 · Личное сообщение · #6 |
![]() |
eXeL@B —› Программирование —› Подключение через dll чужого процесса |
Эта тема закрыта. Ответы больше не принимаются. |