powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подключение через чужую dll
4 сообщений из 4, страница 1 из 1
Подключение через чужую dll
    #34301226
TRUF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема с DLL.
1. Есть DLL (чужая). Она устанавливает соединение с сервером по паролю. Хранит у себя данные об этом соединении и позволяет передавать\получать информацию, указав номер этого соединения.
2. Есть программа, которая грузит эту DLL и устанавливает соединение с сервером.
3. При попытке проделать пункт 2 из другой программы DLL сообщает, что соединение уже установлено и подключаясь вышибает подключение первой программы.
4. При попытке передать данные из другой программы, указав номер соединения, выдается сообщение, что о таком соединении она ничего не знает. Оно и понятно - инфа о соединении лежит принадлежит памяти первого процесса и не разделяется меж процессами.

Нужно. Подключить программу №2 через уже запущенную dll.

Исходников dll нет. Написать для нее wrapper можно.

Я вижу только такой вариант. Сервис-wrapper, грузящий dll при старте ОСи. dll-wrapper для программы №1 обращающийся к сервису. и такой же dll-wrapper для программы №2.
Беда в том, что dll принимает в качестве аргументов функций указатели. А значит мне придется производить перекопирование памяти в dll-wrapper'ах. (А можно ли определить размер этих аргументов?). Гемор и не факт что получится.

Может есть вариант проще?!!!!!
{есть у меня склонность все усложнять}
...
Рейтинг: 0 / 0
Подключение через чужую dll
    #34302140
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TRUF... Может есть вариант проще?!!!!!...

1) попытаься найти для этого "канала связи" настройки через внешнии параметры (такие как IP адрес аббонента с которым нуна соединиться, номер порта на локальной машине и номер порта на удалённой машине). Если их нема...то тут два случая...
2) Использовать подложку под "чёрный ящик" (ниже, на уровне сетевого драйвера).
3) Использовать врапер, как Вы описали - над "чёрным ящиком" (выше, подсовывая ему одного клиента - но прогоняя через "чёрный ящик" данные от разных клиентов)..
4) написать своё... В принцепе это не так страшно...


с уважением
(круглый)
...
Рейтинг: 0 / 0
Подключение через чужую dll
    #34303336
Hryuckinnen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если положить одну копию dll в каталог программы №1, а другую копию dll - в каталог программы №2... Тогда, может, винда их загрузит как две разных dll, и соединение вышибаться не будет. А может, дизассемблировать её да посмотреть, чего там такое творится. Тогда конкретнее можно будет говорить.
...
Рейтинг: 0 / 0
Подключение через чужую dll
    #34303542
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HryuckinnenА если положить одну копию dll в каталог программы №1, а другую копию dll - в каталог программы №2... Тогда, может, винда их загрузит как две разных dll, и соединение вышибаться не будет. А может, дизассемблировать её да посмотреть, чего там такое творится. Тогда конкретнее можно будет говорить.

можно с бубном ышо походить влево... а можно вправо...но если используется один и тот же порт (к примеру) то в любом случае Вы получите оутлуп...

с уважением
(круглый)
ЗЫ
Если задача стоит как "изучить" - то да, наверное стоит дезасэмблировать. Написать на азме своё приложение - весь стэк TCP/IP. Круто...Только одно маленьчкое но... Задача именно так стоит ?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Подключение через чужую dll
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]