Может ли библиотека SQLite встроить (Link) в исполняемый файл Delphi? - PullRequest
10 голосов
/ 20 мая 2011

Мне интересно, сможем ли мы встроить библиотеку SQlite в исполняемый файл Delphi, и мы можем развернуть наше приложение в виде одного файла .exe без какого-либо файла SQlite.

Встраивание - это не сохранение файла sqlite dll в ресурс, а ссылка на исполняемый файл Delphi.

Ответы [ 7 ]

6 голосов
/ 20 мая 2011

Я не пробовал этот компонент, но планирую в будущем Delphi Inspiration - DISQLite3

Существует также Synopse OpenSource SQLite3 Framework

Также доступна бесплатная версия

5 голосов
/ 20 мая 2011

Мы скомпилировали SQLite3 с помощью бесплатного компилятора инструментов Borland C и получившийся файл OBJ, который мы связали в Delphi с помощью {$ LINK 'OBJS \ sqlite3.obj'}, и написали обертки паскаля для необходимых нам функций.

Не удалось разрешить некоторые стандартные функции библиотеки C при компоновке, но мы повторно реализовали их в Delphi.

4 голосов
/ 20 мая 2011

У меня была такая же проблема, и это решение я придумал.Может быть, это может помочь вам.Просто включите sqlite3, и вы получите прямой доступ к функциям DLL.Я использовал те же методы, которые уже были обрисованы в общих чертах: http://simvector.com/download/delphi_sqlite3.zip

DLL просто закодирована в исходной форме, и модуль DLLLoader загружает ее во время выполнения.Конечным результатом является отсутствие дополнительных DLL в вашем дистрибутиве за счет того, что все они загружаются в память сразу по сравнению с частями, загружаемыми по требованию через ОС.

Нам нужно, чтобы он работал как обычно, но в дистрибутиве не было никаких дополнительных dll.Так работает для наших нужд.

4 голосов
/ 20 мая 2011

Anydac Драйвер SQLite имеет статически связанный движок SQLite. Это коммерческая библиотека, хотя. У них есть статья о anydac и sqlite.

1 голос
/ 20 мая 2011

Delphi может связывать файлы .obj, поэтому, если они у вас есть (или исходный код для их компиляции), вы можете связать их в исполняемый файл. Но вы не можете сделать это с помощью SQLLite dll.

IIRC DISQLite 3 делает именно это, проверьте это.

0 голосов
/ 20 мая 2011

Вы можете хранить DLL внутри exe и развертывать программу как один exe.Для получения дополнительной информации: http://delphi.about.com/od/windowsshellapi/l/aa012103c.htm Это также может помочь: Проблема с запуском программы с DLL, встроенной в качестве ресурса

0 голосов
/ 20 мая 2011

Вы можете скачать SQLite с открытым исходным кодом и скомпилировать его в любую среду, которая может скомпилировать код vanilla C. Это не особенно сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...