Russian Qt Forum

Qt => Общие вопросы => Тема начата: dr_Begemot от Май 06, 2009, 09:46



Название: Присоединение dll к приложению
Отправлено: dr_Begemot от Май 06, 2009, 09:46
Есть два вопроса про dll...

1. Что надо написать в pro-файле приложения кроме
Код:
DEPENDPATH   += ../MyDll
INCLUDEPATH  += ../MyDll
LIBS     += -L../../lib -lMyDll
Чтобы при запуске приложение искало dll не только в текущей папке, но и в указанной, например: "../../bin"?

2. Что надо написать в pro-файле приложения чтобы динамическая(!) dll прилинковалась к приложению, т.е. файл exe стал бы занимать больше места, но ему бы не требовалась данная dll для запуска?


Название: Re: Присоединение dll к приложению
Отправлено: spirit от Май 06, 2009, 09:52
должна быть еще статическая либа, если ее нет, то нужно юзать QLibrary.
но если статическая либа все-таки есть, то в про-файле в секции LIBS
нужно указать к ней путь.
почему бы не поискать по форуму, этот вопрос уже обсуждался + где-то был урок.


Название: Re: Присоединение dll к приложению
Отправлено: ритт от Май 06, 2009, 10:04
1. --
2. --


Название: Re: Присоединение dll к приложению
Отправлено: dr_Begemot от Май 06, 2009, 11:10
должна быть еще статическая либа, если ее нет, то нужно юзать QLibrary.
но если статическая либа все-таки есть, то в про-файле в секции LIBS
нужно указать к ней путь.
почему бы не поискать по форуму, этот вопрос уже обсуждался + где-то был урок.

Нашел, что путь к библиотекам можно так устанавливать:  QApplication::addLibraryPath() или QApplication::setLibraryPaths().
Но так и не нашел ответа на 1й вопрос, как это сделать в pro-файле?


Название: Re: Присоединение dll к приложению
Отправлено: ритт от Май 06, 2009, 13:10
1. никак
2. никак (если ты не шаман вуду)


Название: Re: Присоединение dll к приложению
Отправлено: Admin от Май 06, 2009, 13:43
Насчет пункта 2 - в винде есть область ресурсов, и некоторые шаманы вуду засовывают туда свои DLL. Я про это только читал  ::)


Название: Re: Присоединение dll к приложению
Отправлено: xokc от Май 06, 2009, 20:51
Все решения под Windows:
1а. Перед запуском приложения добавлять в path нужную директорию
1б. Только под WinXP и выше испоьзовать манифесты (курить MSDN)
2. Добавить нужные DLL  в ресурсы. При старте приложения распаковывать dll в temp, грузить их динамически и после завершения - удалять.
Только все эти решения - через задницу. Если это связано с желанием скрыть логику работы, то все эти штучки ломаются как на два пальца.