2013-05-17 24 views
0

连接我使用ODAC v8.2.8或也许9.用Delphi 5.什么是用于分配在DLL

我具有可以推出一些作为DLL的实现应用程序的应用的首选方法。为了共享启动器的数据库连接,使用了AssignConnect()方法。

我已经注意到了Devart演示的一个执行只是通过简单的分配

var 
    ExternalSession: TOraSession; 

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

这是Devart推荐的方法使用相同的任务?

+0

如果您在主APP和DLL之间共享对象(或其他托管类型),则将ShareMem(或更新的Delphi版本中的SimpleShareMem)作为.dpr和.dll文件中的第一个单元。这是因为应用程序和DLL都有自己的内存管理器。 –

+0

@Devart我希望你能评论这个 –

回答

1

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