Страница 1 из 2
Подмена DLL-библиотеки
Добавлено: 29 июл 2005, 14:04
Defder
Задача такая: нужно расширить функциональность библиотеки.
Исходников нет. Заголовки её функций есть.
Хочу написать свою библиотеку, используя заголовочные файлы существующей. Проблема в том, чтобы в своей библиотеке вызывать одноимённые функции именно внешней библиотеки.
Добавлено: 01 авг 2005, 06:58
ssDev
Есть простой вариант.
В своей DLL загружай старую dll динамически (LoadLibrary/FreeLibrary) тогда будеш получать ее функции с помощью GetProcAddress и никаких проблем с именованием
Добавлено: 01 авг 2005, 13:20
Absurd
Добавлено: 01 авг 2005, 16:30
Defder
Функций в библиотеке больше сотни. Если бы как-то автоматизировать...
Добавлено: 02 авг 2005, 16:30
WinMain
Не совсем понятно, с чем связано именно такое решение?
Обычно такие модули-посредники подкладывают в чужое приложение, чтобы перехватывать вызовы функций из его "родной" библиотеки. Но для своего проекта зачем создавать промежуточный модуль? Весь код расширения функционала ты можешь использовать напрямую в проекте и вызывать из него функции той библиотеки, которая у тебя есть.
Добавлено: 03 авг 2005, 11:15
Defder
Хочу написать что-то типа патча к существующей библиотеке.
Добавлено: 03 авг 2005, 11:24
Absurd
Напиши dll - враппер, который экспортирует те же самые функции, что и старая dll и переадресовывает вызовы в старую dll. При необходимости модифицируй поведение.
Добавлено: 03 авг 2005, 11:28
Defder
Я и хочу так сделать. А как вызвать из новой библиотеки функцию старой библиотеки? Имена ведь будут совпадать.
Добавлено: 03 авг 2005, 13:02
ssDev
Тебе что в новой библиотеке нужны все функции старой?
Наверняка не более десятка. А парится с тулзами которые насилуют dll это больше проблем чем пользы.
Добавлено: 03 авг 2005, 13:09
ssDev
Мда... Чето в этой теме не так! (мой глюк)
Самый простой путь написаь парсер для хидера потому что из самой dll ты можеш выбрать только имена функций, без параметров и то не всегда.
Поэтому я что-то сомневаюсь чтобы были утилиты каторые делают это автоматически, а хидеры бывают разные