代码之家  ›  专栏  ›  技术社区  ›  Peter Turner

在可执行文件中使用的分组DLL

  •  4
  • Peter Turner  · 技术社区  · 14 年前

    有没有一种方法可以对一堆DLL进行分组,并在运行时仍然使用它们(没有压缩)。抱歉,这个问题听起来既简单又愚蠢,但我不知道还有什么好问的。

    我们有两个独立的Windows应用程序,现在我们的一个应用程序已经膨胀到如此笨拙的程度,以至于另一个应用程序不能在第一个应用程序的范围之外运行。我们希望在让较小的程序使用较大程序的一些特性的同时,保持一些封装。

    运行应用程序没有问题,只是我们不想发送较小的项目所拥有的所有20-30个DLL。

    3 回复  |  直到 14 年前
        1
  •  5
  •   javid piprani    14 年前

    可以通过添加启动代码来实现这一点,启动代码检查目标系统上是否存在DLL,如果没有,则从参考资料部分提取它们(或者简单地标记到exe的末尾)。一个很好的例子就是 Process Explorer -它作为一个二进制文件分发,但运行时会提取并安装一个驱动程序。

        2
  •  3
  •   ChrisLively    14 年前

    当然还有其他考虑因素,如编译时间、最终dll的总体大小、不同部分的更改频率,以及是否在部署每个组件时不使用其他组件。

    Telerik Dev Express 将每个控件放入自己的程序集中。因为这仅仅是维护,更不用说部署,Dev-Express项目并不适合胆小的人。

    (我不为这两家公司工作。不过,我对这两个工具包都有丰富的经验。)

        3
  •  3
  •   jasonpenny    14 年前

    您可以将DLL存储为资源,并使用BTMemoryModule,它本质上允许您在流上加载库。

    看见 http://www.jasontpenny.com/blog/2009/05/01/using-dlls-stored-as-resources-in-delphi-programs/