powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Замена DLL на DLL с другим именем.
36 сообщений из 36, показаны все 2 страниц
Замена DLL на DLL с другим именем.
    #38149781
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Взаимодействие проекта с приложением А осуществляется через a.dll.
Имеем также приложение B, Взаимодействие с которым возможно через b.dll.
Интерфейсы необходимые для взаимодействия в a.dll & b.dll абсолютно идентичны. Остальное может различаться.
Для a.dll имеем файл a.lib и h-файлы. Для b.dll нет ничего.
Как наш проект заставить работать через b.dll с приложением B?


"Есть многое на свете, друг Горацио, что и не сразу в голову придет."
М. Твен "Приключения Геккельбери Финна"
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149787
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКак наш проект заставить работать через b.dll с приложением B?Если интерфейсы действительно идентичны, что мешает взять a.h и сделать копию под названием b.h?
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149814
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abstraction, в h-файлах нет никаких упоминаний о a.dll. Там прототипы и пр. определения. Да они и не a.h.
Линковка осуществляется с помощью а.lib.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149832
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAЛинковка осуществляется с помощью а.lib.

Ну так возьми b.dll и создай b.lib с помощью dlltool или чего-то подобного из комплекта
твоего компилятора.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149834
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто переименовать a.dll в b.dll невозможно, т.к. b.dll используется приложением B. Она не пассивна.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149836
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAAbstraction, в h-файлах нет никаких упоминаний о a.dll. Там прототипы и пр. определения. Да они и не a.h.
Линковка осуществляется с помощью а.lib.А ограничиться динамическим связыванием нельзя? С компоновщиком, подозреваю, выкрутиться не удастся.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149874
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionА ограничиться динамическим связыванием нельзя? С компоновщиком, подозреваю, выкрутиться не удастся. Это как?
Dll не регится, и в референс ее не добавишь. Никакой инфы кроме точек входа из нее не получишь.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149897
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНу так возьми b.dll и создай b.lib с помощью dlltool или чего-то подобного из комплекта
твоего компилятора. В VC 2010 как утилита называетя? В watcom вроде есть, но watcoma нет. Бум искать.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149952
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAВ VC 2010 как утилита называетя?

VC использует .DEF файлы для импорта.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38149969
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAВ VC 2010 как утилита называетя?
DEF файл делается несложной манипуляцией с выдачей dumpbin /EXPORT
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150002
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBA,

Переименовать b.dll в a.dll и прожить вместо a.dll в тог место, откуда оно грузится.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150003
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил, Dimitry Sibiryakov
Уже нашел, работаю. Пока ошибку пишет почти по все м функциям.
команда - lib /def:e:\b.def /out:e:\b.lib /machine:x86
e:\b.def(1) : warning LNK4017: оператор PLUGIN_Init не поддерживается на конечной платформе; пропущен
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150006
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAПросто переименовать a.dll в b.dll невозможно, т.к. b.dll используется приложением B. Она не пассивна.

Скопируй.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150013
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, невозможно. ДЛЛ активная и работает с приложением.
2. ДЛЛ разные, кроме нужного нам интерфейса.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150096
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Невозможно скопировать?
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150102
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНевозможно скопировать?М.б. я не понял, о чем речь?
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150129
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо.
lib-файл сделал, все прилинковалось. Тестовые запросы в dll прошли.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150286
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAДЛЛ активная и работает с приложением.
Переведи. Вообще-то обычно бывает наоборот: приложение работает с DLL...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150290
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
offКак при КПСС. Не человек в партии работает
а партия проводит работу с человеком
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150359
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAMasterZiv, невозможно. ДЛЛ активная и работает с приложением.
2. ДЛЛ разные, кроме нужного нам интерфейса.

Не получится ПЕРЕНЕСТИ или ПЕРЕИМЕНОВАТЬ, но скопировать получится.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150363
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,в чем смысл копирования? Что это нам дает? И куда и что копировать? Наша a.dll работать с приложением B не будет, она внутри другая.

Уже все работает, но давайте посмотрим и этот вариант, т.к. есть еще задачка перенаправить чужую программу на другую DLL.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150369
vvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAMasterZiv,в чем смысл копирования? Что это нам дает? И куда и что копировать? Наша a.dll работать с приложением B не будет, она внутри другая.

Уже все работает, но давайте посмотрим и этот вариант, т.к. есть еще задачка перенаправить чужую программу на другую DLL.
Просто скопировать файл.

Код: plaintext
1.
copy a.dll b.*
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150380
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvm, a.dll и b.dll разные по фунrциональности. Приложение будет работать только с b.dll. Мы в своей программе для взаимодействия с приложением используем только часть функционала, которая идентична a.dll.
Теперь есть чужая программа, работающая с приложением через a.dll. Нужно ее заставить работать с b.dll.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150387
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAvvm, a.dll и b.dll разные по фунrциональности. Приложение будет работать только с b.dll. Мы в своей программе для взаимодействия с приложением используем только часть функционала, которая идентична a.dll.
Теперь есть чужая программа, работающая с приложением через a.dll. Нужно ее заставить работать с b.dll.

Что ж ты хочешь -то тогда ?
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150390
vvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Проект", "Приложение", "Приложение А", "Приложение В", "Своя программа", "Чужая программа" - как-то много сущностей... :(

YUBAvvm, a.dll и b.dll разные по фунrциональности. Приложение будет работать только с b.dll. Мы в своей программе для взаимодействия с приложением используем только часть функционала, которая идентична a.dll.
Теперь есть чужая программа, работающая с приложением через a.dll. Нужно ее заставить работать с b.dll.

"Наша программа" -> b.dll - > "Приложение"
"Чужая программа" -> а.dll - > "Приложение"

YUBAВзаимодействие проекта с приложением А осуществляется через a.dll.
Имеем также приложение B, Взаимодействие с которым возможно через b.dll.
Интерфейсы необходимые для взаимодействия в a.dll & b.dll абсолютно идентичны. Остальное может различаться.
Для a.dll имеем файл a.lib и h-файлы. Для b.dll нет ничего.
Как наш проект заставить работать через b.dll с приложением B?
...

"Проект" -> a.dll - > "Приложение A"
"?" ->b.dll - > "Приложение B"

...моск сломан.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150401
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да все тут понятно было изначально написано, что вы как дети малые к словам цепляетесь :)
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150402
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vvm,
1-й вопрос решен.
"Наша программа" -> а.dll < - > "Приложение A"
"Наша программа" -> b.dll < - > "Приложение B"
Все уже работает. Путем линковки b.dll к нашей программе через b.lib. Без каких либо изменений в теле программы, т.к. используемые нами интерфейсы a.dll и b.dll полностью идентичны. Вопрос закрыт.
-------------------------------------------------------------------------------------
2- вопрос
"Чужая программа для работы с А" -> а.dll < - > "Приложение А" -функционирует
"Чужая программадля работы с А" ->????? b.dll <- > "Приложение В" Как?
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150405
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAВсе уже работает. Путем линковки b.dll к нашей программе через b.lib. Без каких
либо изменений в теле программы, т.к. используемые нами интерфейсы a.dll и b.dll полностью
идентичны.
Как? Если в программе вызывается xxx(), то оно вызывается из a.dll или из b.dll? Как оно
угадывает?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150410
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, a.lib заменена Компоновщик - Ввод - Доп. зависимости на b.lib. Все. :) Код не менялся.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150428
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAvvm,

2- вопрос
"Чужая программа для работы с А" -> а.dll < - > "Приложение А" -функционирует
"Чужая программадля работы с А" ->????? b.dll <- > "Приложение В" Как?

Так же, как и со своей программой, не ?

Как бы компоновщик не занимается линковкой с DLL в рантайме, это делает сам Windows уже, приложение с DLL полностью
собрано, и оно, если без исходников или хотя бы объектников, уже на другую .dll не пересоберётся.
Если только обе DLL имеют абсолютно идентичный бинарный интерфейс (API и ABI), то можно одну dll заменить на другую (например, переименовав). Но для этого надо гарантированно знать, что они совместимы, а для этого они должны быть специально созданы именно так для этого.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150432
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, DLL идентичны только по используемым нами интерфейсам, в остальном они несовместимы. a.dll не будет работать с приложением B. Но взаимодействие с ними из сторонних программ идентично.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150441
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAMasterZiv, DLL идентичны только по используемым нами интерфейсам, в остальном они несовместимы. a.dll не будет работать с приложением B. Но взаимодействие с ними из сторонних программ идентично.

кто на ком стоял ?

Они либо совместимы, либо нет. Видимо, нет. Тогда это невозможно.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150448
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, но я сейчас уже работаю из своей программы. Дел, как оказалось, только другую ДЛЛ прилинковать. В коде вообще ничего не менял.
Надо чужую прогу обмануть. Различающиеся функции ей не нужны, она их и не увидит.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150622
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выход видится такой.
Пишем ДЛЛ с именем а.dll. В экспорте пишем функции Fn(...) с именами, аналогичными экспорту b.dll. Fn(...) перенаправляется на импорт и вызывает из b.dll функцию с тем-же именем.
Получаем
Программа работы с А -> самописная a.dll -> b.dll <-> приложение В.
В статик классе СС определяем функции, запросы к b.dll
XZdatatype fn() {return Fn()}
В программе, вне классов определяем функции, запрашиваемые программой работы с прил. А
XZdatatype Fn() {return CC.fn()}
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38150871
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YUBAMasterZiv, но я сейчас уже работаю из своей программы. Дел, как оказалось, только другую ДЛЛ прилинковать. В коде вообще ничего не менял.
Надо чужую прогу обмануть. Различающиеся функции ей не нужны, она их и не увидит.

Я вот так понимаю: обманывать нехорошо.

Если у тебя есть малолетки этой программы, то просто пересобери.
Если нет — это невозможно, если ты не профессионал. А ты не он, иначе бы не задавал такие вопросы (да ты и описать-то толком ничего не можешь).
Я не собираюсь тут рассказывать все нюансы, их дофига. Профессионал с этим разберется, но и тогда нет гарантии, что это можно вообще сделать.

Так что для тебя думаю есть один практически полезный совет — доверь эту работу профессионалу, наймите кого-то что бы это сделал. Или сказал, что это невозможно.

Успехов.
...
Рейтинг: 0 / 0
Замена DLL на DLL с другим именем.
    #38151610
YUBA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо.
Программа заработала. Через дополнительную DLL.
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Замена DLL на DLL с другим именем.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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