Delphi 在DLL中分配连接的首选方法是什么

Delphi 在DLL中分配连接的首选方法是什么,delphi,devart,Delphi,Devart,我正在使用ODAC v8.2.8或9。用delphi5 我有一个应用程序,它可以启动许多作为DLL实现的应用程序。为了共享启动器的数据库连接,使用AssignConnect()方法 我注意到一个德瓦特演示通过简单的任务完成了同样的任务 var ExternalSession: TOraSession; procedure AssignSession(Session: TOraSession); cdecl; begin ExternalSession := Session; end;

我正在使用ODAC v8.2.8或9。用delphi5

我有一个应用程序,它可以启动许多作为DLL实现的应用程序。为了共享启动器的数据库连接,使用
AssignConnect()
方法

我注意到一个德瓦特演示通过简单的任务完成了同样的任务

var
  ExternalSession: TOraSession;

procedure AssignSession(Session: TOraSession); cdecl;
begin
  ExternalSession := Session;
end; 

Devart推荐使用哪种方法?

您不能在dll中使用外部OraSession。为了正确工作,应该调用OraSession的AssignConnect方法(在Dll中使用),将外部OraSession作为参数发送。这种方法在ShowForm方法的演示项目中使用。如果只使用一个会话,则可以立即为内部会话调用AssignConnect方法。我们在dll中包含了一个附加变量ExternalSession,用于以不同形式声明的多个OraSessions。

如果在主应用程序和dll之间共享对象(或其他托管类型),则在.dpr和.dll文件中都包含ShareMem(或更新的Delphi版本中的SimpleShareMem)作为第一个单元。这是因为应用程序和DLL都有自己的内存管理器。@Devart我希望您能对此发表评论