Другие языки программирования и технологии
Delphi dll библиотеки.
У меня есть программа, для её работы необходимы две dll библиотеки. Я их кладу в один каталог с программой. Подскажите, пожалуйста, как поместить эти библиотеки в программу? Т. е. чтобы программа работала, но был лишь один .exe файл.
Никак.
Можно сделать инсталляшку на каком-нибудь NSIS, которая по-тихому будет куда-то распаковываться и оттуда запускаться, но это максимум того, что можно сделать.
Еще вариант - если у тебя есть сырцы этих библиотек, можно скомпилировать их как статические (.lib), переделать в объектные (.obj) и прилинковать через {$L}. Но это геморройненько как-то.
Можно сделать инсталляшку на каком-нибудь NSIS, которая по-тихому будет куда-то распаковываться и оттуда запускаться, но это максимум того, что можно сделать.
Еще вариант - если у тебя есть сырцы этих библиотек, можно скомпилировать их как статические (.lib), переделать в объектные (.obj) и прилинковать через {$L}. Но это геморройненько как-то.
Денис Жарченко
Скажите, пожалуйста, а можно ли тогда установить путь к dll библиотеке, откуда её и загрузить?
Oleg Hohlov
а если каким-то волшебным средством переместить код этих библиотек в exe (изменив все оффсеты), и заставить dcu (или что там) грузить хедеры из exe, то разве это не сработает при условии отсутствия конфликтов имен функций?
Если работает, когда dll рядом с exe, это уже хорошо. Уже можно посылать на другой компьютер и там устанавливать по этому правилу (при условии, что программа ничего не использует из вашей системы). Если программа, например, дополнительно использует библиотеку MFC (которая является основой Windows), то её можно установить для любой Windows. Если используется то, чего Windows не знает, то это надо поставить дополнительно.
Если установка делается для администратора, то он может поставить библиотеки в папку с доступными Windows библиотеками dll. Или же, поместив dll куда-то, указать новыми записями в реестре Windows путь к этим библиотекам.
Ещё один простейший вариант - путь к библиотекам указать, дописав его в системную переменную среды PATH, которая обеспечивает быстрый поиск. Это можно сделать вручную или через запуск bat-файла, поставляемого в пакете. Пробуйте.
Интересно, что когда программа не находит дельфийскую dll, то она сообщает её имя.
Если установка делается для администратора, то он может поставить библиотеки в папку с доступными Windows библиотеками dll. Или же, поместив dll куда-то, указать новыми записями в реестре Windows путь к этим библиотекам.
Ещё один простейший вариант - путь к библиотекам указать, дописав его в системную переменную среды PATH, которая обеспечивает быстрый поиск. Это можно сделать вручную или через запуск bat-файла, поставляемого в пакете. Пробуйте.
Интересно, что когда программа не находит дельфийскую dll, то она сообщает её имя.
Есть такие программы.
https://www.vmware.com/products/thinapp.html
http://www.molebox.com/
Обычно они используются для создания portable-версий программ и для взлома лицензии. Но я ими не пользовался. Ищи инструкции в интернете.
https://www.vmware.com/products/thinapp.html
http://www.molebox.com/
Обычно они используются для создания portable-версий программ и для взлома лицензии. Но я ими не пользовался. Ищи инструкции в интернете.
Зачем тебе такой гемор? Пусть лежат с программой. Ну, если так надо, ничего сложного, кури тему упаковка и распаковка ресурсов. А потом, при закрытии формы, удаляй файлы.
Похожие вопросы
- Как пишут DLL-библиотеки?
- Согласны с этим - Глубинные причины ненависти к Delphi/Pascal ?
- как открыть dll файл ,а потом его обратно сделать dll?
- Для чего нужны библиотеки? Файлы с расширением dll?
- Delphi:Прочитал, что если при динамическом создании компонента если указать Name объекта, то в последующем можно ->
- Как в C++ Builder 6 произвести ипорт процедуры Dll?
- С помощью какой программы можно открыть файл с расширением .dll
- Как в Delphi сделать справку?
- Помогите найти ошибку Delphi легкая программка
- Delphi ПОМОГИТЕ ПОЖАЛУЙСТА!