Подмена DLL-библиотеки
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Задача такая: нужно расширить функциональность библиотеки.
Исходников нет. Заголовки её функций есть.
Хочу написать свою библиотеку, используя заголовочные файлы существующей. Проблема в том, чтобы в своей библиотеке вызывать одноимённые функции именно внешней библиотеки.
Исходников нет. Заголовки её функций есть.
Хочу написать свою библиотеку, используя заголовочные файлы существующей. Проблема в том, чтобы в своей библиотеке вызывать одноимённые функции именно внешней библиотеки.
Есть простой вариант.
В своей DLL загружай старую dll динамически (LoadLibrary/FreeLibrary) тогда будеш получать ее функции с помощью GetProcAddress и никаких проблем с именованием
В своей DLL загружай старую dll динамически (LoadLibrary/FreeLibrary) тогда будеш получать ее функции с помощью GetProcAddress и никаких проблем с именованием
Функций в библиотеке больше сотни. Если бы как-то автоматизировать...
Не совсем понятно, с чем связано именно такое решение?
Обычно такие модули-посредники подкладывают в чужое приложение, чтобы перехватывать вызовы функций из его "родной" библиотеки. Но для своего проекта зачем создавать промежуточный модуль? Весь код расширения функционала ты можешь использовать напрямую в проекте и вызывать из него функции той библиотеки, которая у тебя есть.
Обычно такие модули-посредники подкладывают в чужое приложение, чтобы перехватывать вызовы функций из его "родной" библиотеки. Но для своего проекта зачем создавать промежуточный модуль? Весь код расширения функционала ты можешь использовать напрямую в проекте и вызывать из него функции той библиотеки, которая у тебя есть.
Хочу написать что-то типа патча к существующей библиотеке.
Я и хочу так сделать. А как вызвать из новой библиотеки функцию старой библиотеки? Имена ведь будут совпадать.
Тебе что в новой библиотеке нужны все функции старой?
Наверняка не более десятка. А парится с тулзами которые насилуют dll это больше проблем чем пользы.
Наверняка не более десятка. А парится с тулзами которые насилуют dll это больше проблем чем пользы.
Мда... Чето в этой теме не так! (мой глюк)
Самый простой путь написаь парсер для хидера потому что из самой dll ты можеш выбрать только имена функций, без параметров и то не всегда.
Поэтому я что-то сомневаюсь чтобы были утилиты каторые делают это автоматически, а хидеры бывают разные
Самый простой путь написаь парсер для хидера потому что из самой dll ты можеш выбрать только имена функций, без параметров и то не всегда.
Поэтому я что-то сомневаюсь чтобы были утилиты каторые делают это автоматически, а хидеры бывают разные