Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: COM/DCOM/ActiveX/ATL/CORBA > Зависимость DLL от EXE?


Автор: sergey_85 18.1.2011, 14:41
Привет!

Компилирую чужой проект (exe + ATL, OCX). Depency Walker показывает зависимость от другого внешнего exe файла. 
В настройках проекта нигде зависимостей не нашел, как такое возможно, чтобы один exe зависел от другого, а не от dll? хотя в настройках проекта нигде не прописано,    #pragma comment(lib, "") тоже нет?

PS: если в папку кинуть недостающий exe, то все работает!

Спасибо!

Автор: xvr 18.1.2011, 16:53
Цитата(sergey_85 @  18.1.2011,  14:41 Найти цитируемый пост)
Depency Walker показывает зависимость от другого внешнего exe файла.
Чудеса. А можно файл проекта посмотреть?


Автор: sergey_85 19.1.2011, 07:07
Да, он показывает зависимость одной dll от .exe файла, к сожалению исходника этой dll нет, есть только сама dll в "debug" сборке, т.к. проект чужой :(. 
"подарок" от прежней команды разработчиков.

Dependency показывает зав. в одной из ф-ций этой dll. 
А например как это может выглядеть в коде, как вызов к примеру shellExecute(...)?

Так, что буду класть в папку этот .exe и работать так.

...и еще вопрос, если я весь проект собираю в релизе, а эта самая dll-ка в сборке debug есть, получится собрать весь проект в релизе?

Спасибо!

Добавлено @ 07:13
Сам проект написан на Visual C++ 6.0, в файле проекта нет зависимостей, все они прописаны в коде, примерно так: 
Код

#ifdef _DEBUG
   #pragma comment(lib, "X:\\xxxxx\\xxxx.lib")
#else
   #pragma comment(lib, "X\\xxxxx\\xxxx.lib")
#endif

Автор: xvr 19.1.2011, 11:22
Цитата(sergey_85 @  19.1.2011,  07:07 Найти цитируемый пост)
Dependency показывает зав. в одной из ф-ций этой dll. 
А например как это может выглядеть в коде, как вызов к примеру shellExecute(...)?
Нет, там должно быть что то другое. А тогда на саму dll можно глянуть?

Цитата(sergey_85 @  19.1.2011,  07:07 Найти цитируемый пост)
...и еще вопрос, если я весь проект собираю в релизе, а эта самая dll-ка в сборке debug есть, получится собрать весь проект в релизе?
Должно получится

Автор: sergey_85 20.1.2011, 11:19
не могу dll показать, к сожалению :(

Автор: Batbko 20.1.2011, 23:51
в исполняемом файле вполне может быть таблица экспорта, функции определяються и подключаються внешними модулями точно так же как и в случае с dll библиотеками.
Так что хоть это и не супер классный стиль разработки но PE формат позволяет делать такие трюки ;). 
Проблемы могут начаться при попытке упаковать экзешник, большинство упаковщиков в первую очередь сносят из экзешника таблицу экспорта.

Автор: jonie 21.1.2011, 08:26
Цитата(xvr @ 19.1.2011,  11:22)
Цитата(sergey_85 @  19.1.2011,  07:07 Найти цитируемый пост)
...и еще вопрос, если я весь проект собираю в релизе, а эта самая dll-ка в сборке debug есть, получится собрать весь проект в релизе?
Должно получится

плохая идея миксовать дебаг и релиз. А что если передаются сложные сишные объекты между модулями? А какая crt будет рулить памятью?....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)