Другие языки программирования и технологии

Delphi dll библиотеки.

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