|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
Здравствуйте, уважаемые форумчане! К несчастью, в работе с dll у меня огромный пробел, а тут надо сразу, да еще и не совсем стандартно. В общем, осваиваю на бегу, но без вашей помощи не обойтись. К сути вопроса: есть dll1 и приложение, которое с этой dll1 успешно работает. Но есть потребность несколько расширить функционал, добавив сбор статистики. Ни разработчики dll1, ни разработчики приложения дорабатывать продукт не готовы, т.к. им этот функционал не интересен, поэтому надо как-то выкручиваться. В наличии dll, h и lib файлы. На выходе надо получить dll2, которая для приложения должна выглядеть совершенно так же, как dll1, но в некоторых функциях кроме того, что делает dll1, должны выполняться дополнительные действия. Теорию по dll изучаю, а как сделать такой клон, пока понять не могу. Объясните, пожадуйста, на простейшем примере, как это должно выглядеть? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 07:33 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills, Попробуй такую схему: пишешь dll, которая загружает и вызывает функции dll1. Подменяешь ей исходную dll1. Если всё работает - вставляешь свои костыли в вызовы. Напиши сначала сам минимальный пример, в котором будет приложение, dll и одна функция. Попробуй её подменить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 07:59 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
Читай Рихтера Windows via C/C++ про перехват вызовов API-функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 08:08 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills добавив сбор статистики Для прогеров статистика это количество вызовов function X. Для руководства это посещение страницы Y 567 раз. Для второй, надо не перехватывать, а брать исходники и вставить в конструктор класса Y слово Log() ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 08:42 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills, Если есть исходники и ты программист, то глупо ими не воспользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 08:43 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
Dima T Читай Рихтера Windows via C/C++ про перехват вызовов API-функций. это уже тяжёлая артиллерия обычно хватало варианта от crutchmaster ills Но есть потребность несколько расширить функционал, добавив сбор статистики. Ни разработчики dll1, ни разработчики приложения дорабатывать продукт не готовы а решение этой проблемы не из области программрования на С ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 08:46 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
crutchmaster, Мне понятно, что надо в свой проект подключить dll1.h и dll1.lib и реализовать вызов соответствующих функций. Мне не понятно, как получить в итоге клон, ведь функции исходной dll и новой называются одинаково? Например, в библиотеке dll1 есть экспортируемая функция, которая выводит банальное "Hello world" Код: plaintext 1.
В "расширенном" клоне эта функция должна к этому "Hello world" выводить еще, например, "Привет, мир". Для того, чтобы все заработало, мне надо сделать следующее: 1) переименовать библиотеку dll1 в dll1old (она же будет использоваться, в моей библиотеке, а моя библиотека должна называться dll1, чтобы с ней могло работать приложение) 2) добавить в проект dll1.h от исходной библиотеки и подключить dll1.lib 3) в своем проекте создать cpp и h файлы, в которых будет реализация новой функции hello_world. Или h-файл создавать не надо, т.к. он идентичен добавленному от исходной библиотеки? А если надо, то что в нем прописывать? 4) и, собственно, в cpp-файле Код: plaintext 1. 2. 3. 4. 5.
Все правильно, или я что-то не так понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 11:23 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
Dima T, Спасибо за рекомендацию, изучу ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 11:23 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, так нет исходников) и dll, и приложение - сторонние разработки. К разработчикам за расширением функционала обращались, получили отказ ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 11:26 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills PetroNotC Sharp, так нет исходников) и dll, и приложение - сторонние разработки. К разработчикам за расширением функционала обращались, получили отказ А про статистику промолчали. Так как вам нужна статистика совершенно чужого приложения. В народе говорят что это взлом. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 11:32 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Статистика - это несколько обобщенно и упрощенно) В некоторых функциях надо добавить запрос от пользователя дополнительных параметров, затем запрос к web-сервису для проверки этих параметров на актуальность, и еще добавить работу с дополнительной БД, в которую будут записываться результаты и еще некоторая информация, необходимая в дальнейшем для составления отчетов и контроля ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 11:42 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, собственно, с разработчиком dll эта работа согласована, но исходниками, естественно, никто не поделится (да это и бессмысленно, т.к. dll время от времени обновляется) Возможно, это и можно называть взломом, но тут цель сугубо созидательная, ни правообладателю исходной dll, ни правообладателю приложения имущественного вреда нанесено не будет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 11:44 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills В некоторых функциях надо добавить запрос от пользователя дополнительных параметров, Еще конкретнее. Имя функции, ее параметры дайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 11:55 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills PetroNotC Sharp, так нет исходников) и dll, и приложение - сторонние разработки. К разработчикам за расширением функционала обращались, получили отказ Ну так и не трогай dll1. Создай еще одну dll, а в .h добавь декларацию экспортируемых функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 11:57 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Это не взлом. Это танцы на костылях по граблям и ямам. Через год надо будет обновить приложение, а ТС найдёт нормальную работу. Прослойка отвалится, приложение отвалится, сорцы потеряют. По-доброму тем разрабам надо приделать какие-то внешние хуки в своё приложение, а не заставлять клиентов заниматься чёрти чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:02 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, я исполнитель (собственно, это было обозначено в первом вопросе). Как может помочь название функции и ее параметры, если вопрос у меня в другом? Или это для того, чтобы убедиться, что я не собираюсь сделать что-то противозаконное? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:06 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills, Я сомневаюсь в идее. Поломать то все можно. Например, как вы добавите параметр если их длл его не примет? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:09 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills Код: plaintext 1. 2. 3. 4. 5.
Где добавка параметра? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:10 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills Мне не понятно, как получить в итоге клон, ведь функции исходной dll и новой называются одинаково? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:10 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
crutchmaster, Возможно, через год разработчики приложения поймут, что не только нам нужен этот функционал, и добавят его в новый релиз и необходимость в этой прослойке отпадет (и это будет здорово на самом деле). Естественно, разработчикам dll это не интересно, т.к. в ней это все реально не нужно, но мы тут заложники ситуации, поэтому приходится как-то выкручиваться :( ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:12 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills, Что за приложение хоть и что оно делает? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:13 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills crutchmaster, Возможно, через год разработчики приложения поймут, что не только нам нужен этот функционал, и добавят его в новый релиз и необходимость в этой прослойке отпадет (и это будет здорово на самом деле). Естественно, разработчикам dll это не интересно, т.к. в ней это все реально не нужно, но мы тут заложники ситуации, поэтому приходится как-то выкручиваться :( Ничего личного. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:13 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, параметры добавлять не нужно в функции, они остаются без изменений. Т.е. вместо Код: plaintext 1.
будет вывод диалога для ввода значения и запрос к web-сервису для проверки этого значения на актуальность. И уже после этих проверок выполнение функции исходной dll ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:15 |
|
обертка-клон для dll
|
|||
---|---|---|---|
#18+
ills вывод диалога ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2019, 12:16 |
|
|
start [/forum/topic.php?fid=57&msg=39896254&tid=2017509]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 278ms |
total: | 416ms |
0 / 0 |