我想知道我们是否能够将SQlite库嵌入到Delphi可执行文件中,我们可以将我们的应用程序部署为单个.exe文件而不需要任何SQlite dll文件.
嵌入不是将sqlite dll文件保存到资源中,而是链接到Delphi可执行文件.
我们已经使用Borland的免费命令行工具C编译器编译了SQLite3,并使用{$ LINK'OBJS \ sqlite3.obj'}在Delphi中链接了所得的OBJ文件,并为所需的功能编写了Pascal包装器。
链接时解决一些标准的C库函数存在问题,但是我们在Delphi中重新实现了它们。
我遇到了同样的问题,这是我想出的解决方案。也许它可以帮助你。只需包含 sqlite3,然后您就可以直接访问 dll 函数。我使用了已经概述的相同方法: http ://simvector.com/download/delphi_sqlite3.zip
DLL 只是以源形式编码,DLLLoader 单元在运行时加载它。最终结果是您的发行版中没有额外的 DLL,但代价是所有 DLL 都被一次性加载到内存中,而不是通过操作系统按需加载部分内容。
我们需要它正常工作,但发行版中没有额外的 dll。所以适合我们的需要。