我正在Delphi中创建一个桌面应用程序,并计划使用嵌入式数据库.我使用SQlite3和DISQLite3库启动了项目.它有效,但文档似乎有点轻松.我最近发现Firebird(是的,我已经离开了Windows一段时间),它似乎有一些引人注目的功能和支持.
每个嵌入式数据库有哪些优缺点?规模很重要,支持和资源也很重要.你用过什么,为什么?
我是delphi的新手.我试图在我的Delphi项目中添加C Object文件并直接链接它们,因为Delphi支持C Object Linking.当我链接单个Object文件时,我得到了它.但是当我尝试链接多个目标文件时,我收到错误"不满意的前向或外部声明".我在Delphi 2007以及XE中尝试过这个.所以我在这里做错了什么?
工作守则:
function a_function():Integer;cdecl;
implementation
{$Link 'a.obj'}
function a_function():Integer;cdecl;external;
end.
Run Code Online (Sandbox Code Playgroud)
错误代码:
function a_function():Integer;cdecl;
function b_function();Integer;cdecl;
function c_function();Integer;cdecl;
implementation
{$LINK 'a.obj'}
{$LINK 'b.obj'}
{$LINK 'c.obj'}
function a_function():Integer;cdecl;external;
function b_function();Integer;cdecl;external;
function c_function();Integer;cdecl;external;
end.
Run Code Online (Sandbox Code Playgroud) 我已经完成了在Delphi EXE中嵌入dll的About.com指南,这似乎有效,只要我实际上不使用DLL作为外部函数.无论如何,让我链接的代码比uses子句中引用的单元更早地工作.
我试过了:
通过外部函数,我指的是一个看起来像这样的函数:
function MyFunction: Integer; stdcall; external 'fundll.dll';
Run Code Online (Sandbox Code Playgroud)
我得到的问题是通常的'fundll.dll'无法加载(因为它不在目录中).当代码到达那么远时,Zarko的代码工作(相当甜,它在该文件夹中创建了dll).但是当我使用我需要的外部功能时,它只是在项目开始滚动之前就崩溃了.