Delphi 2010 - 带有sharemem的Hydra插件

时间:2010-11-19 11:21:25

标签: delphi

我将D2010 EXE转换为hydra插件DLL。此DLL使用的其他DLL函数很少,其中包含字符串参数。所以,我使用sharemem作为第一单元。

然后我创建了一个Hydra主机应用程序并加载了这个插件。插件内置的表单已加载。但是在关闭主应用程序时,我遇到了一些Access违规和应用程序闪烁问题。我试图调试插件以及主机。但经过一段时间后才能走得更远。

任何有关解决此问题的想法都非常有用

由于 Venkat

1 个答案:

答案 0 :(得分:0)

这个问题几乎没有任何信息可用于解决它。您需要针对特定​​解决方案更具体。但是,我可以为您解决这类问题:

  1. 制作应用程序的实验副本。 Progressivly删除代码片段并重新测试load-plugin并关闭行为,直到达到稳定性或者宿主应用程序和插件都是普通的存根。此时,您已找到了解决问题的原因。
  2. 确保在打开“Packages”的情况下编译主机应用程序。
  3. 使用DependencyWalker之类的工具来确定两个二进制文件使用的运行时包列表。
  4. 检查主机和插件的运行时包列表。基本思想是,由于主机列表或插件列表中缺少其拥有的运行时包,因此不应该有两次实例化的公共单元。