我的程序过于臃肿,而且跟其它的程序有很多共用的模块,所以打算将其共用的模块以附加包的形式发布,现有以下几点不明:
1,上面的做法是否可行,如何做?
2,如果选定Build with runtime packages,是否一定要将vcl50包一起发布出去。
3,附加包应该存储于目标机的什么路径下?
4,请讲解一下附加包的调用机制,同一进程多次调用和不同进程的多次调用会如何。

解决方案 »

  1.   

    1、可以!也可以通过动态连接苦的方式实现!
    2、可以查看Application Information确认使用了那些包!
    3、Delphi程序查找包的顺序是:当前目录-〉操作系统目录-〉搜索路径中的目录,只要你的程序适用的包放在以上的任何一个目录都可以!
    4、Delphi的包实际上就是动态连接库,不用担心调用出错的问题!!!
      

  2.   

    弄这么麻烦干什么?
    用aspack压缩不就成了
      

  3.   

    to: yayx(yayx)
    关键不是臃肿,是便于升级。
    to: Delphi_Li(Delphi Li) 
    能否提示一些实现的细节,以及运行期包和设计期包的差异。我的程序已经完成了,接着我该怎么发布它呢(以上面的方式)。如何调整?
      

  4.   

    当然可以
    新建一个包把你的公共单元加进去
    包当然要用到vcl50,除非你的包....
    在系统能找到的路径下
    包编译其实就是一个Dll,跟dll的原理一样
      

  5.   

    为何我在build with runtime packages 中只增加了如下
    DemoPack(自定义的包)
    结果程序运行是还是会调用vcl60.bpl等等
      

  6.   

    发布已.bpl结尾的文件.设计期包和运行期包的区别是,设计期包可以象控件一样,而运行期包则不可以。至于路径应该和你的library设置一致。
      

  7.   

    我动态连接bpl时getclass得不到我的注册类
    在package中我是如下注册的
    initialization
      RegisterClass(TDemoDM);
      SHOWMESSAGE('HELLO');
    显然hello在包加载时显示了,为何getclass(‘TDemoDM’)却失败了呢???
      

  8.   

    我动态连接bpl时getclass得不到我的注册类
    在package中我是如下注册的
    initialization
      RegisterClass(TDemoDM);
      SHOWMESSAGE('HELLO');
    显然hello在包加载时显示了,为何getclass(‘TDemoDM’)却失败了呢???就急啊!!!