Форвард из одной DLL-ки в другую
От: пффф  
Дата: 07.06.23 20:15
Оценка:
Привет!

Есть в DLLке данные/функции. Хочу сделать свою прокси DLLку, которая часть функций перехватит, а часть — просто отправит искать в оригинальную DLL. Как это лучше сделать?

ЗЫ Если по поводу функций — то там о них известны прототипы, и можно тупо сделать переходники, то что за данные лежат — вообще хз, пока думаю просто форварднуть как-нибудь
Re: Форвард из одной DLL-ки в другую
От: kov_serg Россия  
Дата: 08.06.23 19:27
Оценка:
Здравствуйте, пффф, Вы писали:

П>Есть в DLLке данные/функции. Хочу сделать свою прокси DLLку, которая часть функций перехватит, а часть — просто отправит искать в оригинальную DLL. Как это лучше сделать?

П>ЗЫ Если по поводу функций — то там о них известны прототипы, и можно тупо сделать переходники, то что за данные лежат — вообще хз, пока думаю просто форварднуть как-нибудь

Элементарно. Генератор кода.
Re: Форвард из одной DLL-ки в другую
От: ομικρον  
Дата: 09.06.23 08:18
Оценка: +1
Здравствуйте, пффф, Вы писали:

П>Есть в DLLке данные/функции. Хочу сделать свою прокси DLLку, которая часть функций перехватит, а часть — просто отправит искать в оригинальную DLL. Как это лучше сделать?


Проще всего — использовать def-файл для прокси длл:

EXPORTS
func2=other_module.func1

Re[2]: Форвард из одной DLL-ки в другую
От: пффф  
Дата: 09.06.23 08:56
Оценка:
Здравствуйте, kov_serg, Вы писали:

П>>Есть в DLLке данные/функции. Хочу сделать свою прокси DLLку, которая часть функций перехватит, а часть — просто отправит искать в оригинальную DLL. Как это лучше сделать?

П>>ЗЫ Если по поводу функций — то там о них известны прототипы, и можно тупо сделать переходники, то что за данные лежат — вообще хз, пока думаю просто форварднуть как-нибудь

_>Элементарно. Генератор кода.


Ты не понял, что я хочу. Я хочу экспортировать в своей DLL данные/функции, чтобы реально экспорты ссылались на другую DLL. Как тут генератор кода поможет?

Впрочем, я разобрался, как это сделать — система это позволяет сделать, причем довольно просто, в .DEF файле:
someFunction=other_module.someOtherName
Re[2]: Форвард из одной DLL-ки в другую
От: пффф  
Дата: 09.06.23 09:03
Оценка:
Здравствуйте, ομικρον, Вы писали:

ομι>Проще всего — использовать def-файл для прокси длл:


ομι>

ομι>EXPORTS
ομι> func2=other_module.func1



Да, это оно, сам нашел Но все равно спасибо
Re[2]: Форвард из одной DLL-ки в другую
От: пффф  
Дата: 09.06.23 21:46
Оценка:
Здравствуйте, ομικρον, Вы писали:

ομι>

ομι>EXPORTS
ομι> func2=other_module.func1



Попробовал. На все перенаправленные элементы ругается, что unresolved extern
Re[2]: Форвард из одной DLL-ки в другую
От: пффф  
Дата: 09.06.23 21:59
Оценка:
Здравствуйте, ομικρον, Вы писали:

ομι>

ομι>EXPORTS
ομι> func2=other_module.func1


Кстати, а тут расширение никак не задать, используется .dll по умолчанию?
Re[3]: Форвард из одной DLL-ки в другую
От: Aquilaware  
Дата: 12.06.23 14:20
Оценка:
Здравствуйте, пффф, Вы писали:

П>Кстати, а тут расширение никак не задать, используется .dll по умолчанию?


Используется имя модуля. Какое будет конкретное расширение определяется только системным загрузчиком модулей. По-умолчанию это .dll, но, например, если модуль с таким именем уже загружен в процесс из .exe файла, то будет использоваться уже загруженный образ модуля и никакие другие файлы искаться не будут.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.