如何再次减小dll大小

时间:2010-03-26 17:43:41

标签: delphi delphi-7

出于某种原因,我的dll已经比早期增加了很多倍。我开始调整情况:

  1. 来源未发生变化。
  2. 调试信息到处都关闭了。
  3. Dll使用包“Pack”,但不包含在运行时包选项中。
  4. 我将新版dll与旧版本dll进行了比较,认为PE Explore的工具性。在新的dll中,我发现许多模块的前缀'ec'隐式导入,不像旧的dll。
  5. 使用ecControls组件打包“Pack”
  6. Dll不使用显式调用ecControls单位。
  7. 为什么在IDE中导入ecControls单位?有人建议吗?

3 个答案:

答案 0 :(得分:2)

如果意外使用了ecControls中的一个单元,它的初始化部分(如果有的话)将被调用,你可以在那里放一个断点来试图查看它的调用位置。您还可以在System.InitUnits(启用调试dcus)中放置一个断点,以查看是否正在初始化ecControls中的任何单元。

在处理dll时,我在Forms.pas中使用此技术,以确保不会意外链接Forms.pas。

答案 1 :(得分:1)

如果您的DLL使用的包未包含在运行时包列表中,则其单元将隐式导入到DLL中,而不是链接到运行时包。这可能就是造成它的原因。尝试将软件包添加到运行时软件包列表中,看看ecControls问题是否消失。

答案 2 :(得分:1)

为什么你不重命名ecControls目录并重建(当然首先删除包)? 这将让你准确地看到它被引用的位置。