我想知道我们是否能够将SQlite库嵌入到Delphi可执行文件中,我们可以将我们的应用程序部署为单个.exe文件而不需要任何SQlite dll文件。
嵌入不是将sqlite dll文件保存到资源中,而是链接到Delphi可执行文件。
答案 0 :(得分:6)
我没有尝试过这个组件,但我计划将来使用 Delphi Inspiration - DISQLite3
还有 Synopse OpenSource SQLite3 Framework
也可以使用免费软件
答案 1 :(得分:4)
答案 2 :(得分:4)
我们已经使用Borland的免费命令行工具C编译器和我们在Delphi中使用{$ LINK'OBJS \ sqlite3.obj'}链接的结果OBJ文件编译了SQLite3,并为我们需要的函数编写了pascal包装器。
链接时解决一些标准C库函数时出现问题,但我们在Delphi中重新实现它们。
答案 3 :(得分:4)
我遇到了同样的问题,这是我提出的解决方案。也许它可以帮到你。只需包含sqlite3,然后就可以直接访问dll函数了。我使用了已经概述的相同方法: http://simvector.com/download/delphi_sqlite3.zip
DLL只是以源代码形式编码,DLLLoader单元在运行时加载它。最终的结果是你的发行版中没有额外的DLL,代价是它一次被加载到内存中,而不是通过操作系统按需加载的部分。
我们需要它正常工作,但发行版中没有额外的dll。因此可以满足我们的需求。
答案 4 :(得分:1)
Delphi可以链接.obj文件,因此如果您有可用的文件(或编译它们的源代码),您可以将它们链接到可执行文件中。但是你不能用SQLLite dll。
IIRC DISQLite 3正是如此,请检查它。
答案 5 :(得分:0)
您可以下载SQLite开源并将其编译到任何可以编译vanilla C代码的环境中。这不是特别难。
答案 6 :(得分:0)
您可以将DLL存储在exe中,并将程序部署为一个exe。 欲获得更多信息: http://delphi.about.com/od/windowsshellapi/l/aa012103c.htm 这也可能有所帮助: Problem starting program with a dll embedded as a resource