Delphi Dynamic Dll - 全局变量

Cru*_*ler 6 delphi dll global-variables

我正在忙着编写一个为宿主应用程序提供多种功能的DLL.此应用程序动态调用dll,在每次函数调用后加载并释放它.

我无法控制主机应用程序.我只能在dll中工作.有没有办法可以将某些变量保存在内存中,以便我可以在每个函数中重用它们?当主机应用程序卸载dll时,显然会清除全局变量.将dll保存到文件听起来非常混乱!

任何人都可以建议一种分配变量的方法吗?

谢谢

Tim*_*vis 4

我认为你在这里有两个主要选择。

  1. 提供你的函数的两个版本,你现在拥有的一个,加上另一个版本,它们传递一个缓冲区(记录,无论什么),你可以从中读取以前的状态,当然也可以将状态更新到其中。将此称为该函数的高性能版本。他们会想使用它。

  2. 将状态保存在某个文件中,就像将 cookie(基本上就是这样)一样。

选项 1 需要对主机应用程序进行修改,但对于主机应用程序开发人员来说很有吸引力,选项 2 不需要对主机应用程序进行任何更改,但性能不高。

我个人不会倾向于开始处理引用计数,大概主机应用程序正在卸载是有原因的,如果我是主机应用程序开发人员,那会让我烦恼。