【发布时间】:2010-08-06 07:16:51
【问题描述】:
我有一个 DLL 和一个程序,它们都是用 Delphi 2007 编写的。程序将一个接口传递给 DLL,该接口源自 IInterface 并且没有 GUID(所以这里没有 COM)到 DLL 存储它以供以后使用。
这似乎工作正常,但有时我会在程序关闭并卸载 DLL 时遇到访问冲突。我不确定这些 AV 的原因。接口可能超出范围,通过引用计数,驻留在程序上下文中的底层对象被释放,从而导致内存损坏,因为涉及到两个不同的内存管理器。
我没有使用 sharemem,并且出于各种原因我不想使用(其中一个原因是其他不是用 Delphi 编写的程序可能想要使用该 DLL)。
我知道我不应该以这种方式传递字符串、打开数组和对象,但是接口应该工作吗?
【问题讨论】:
标签: delphi delphi-2007