在模块中静态调用一个包A ,然后把模块打包B,提示一个函数没有定义(此函数在包A中定义),
我该怎么处理呢?还有,我想在C中调用B.

解决方案 »

  1.   

    包的调用有以下动作:
      1.用loadpackage()得到被调用包的HMoudle
      2.用GetClass得到包中的类
    然后就可以调用本包中的函数了
    如果以上还不行,就说明你被调用包中的类没有注册,请在最后一行end前加上如下语句 :
    Inialization
       RegisterClass(本单元类名);
    Finalization
       UnRegisterClass(类名);
      

  2.   

    应该要把包A的路径加入到library path中,并且包A要设置为rebuild as needed,不知道,呵呵,乱讲的
      

  3.   


    谢谢,这些都设置好了的.
    也许是我没有说清楚.大体是这样的 : A 总程序, B通用模块,C 单独模块,D单独模块,......
    A、C、D。中静态加载B,
    A中动态态加载C、 D。。
     
      

  4.   


    是的,已经加载了,并且A设置为 design time and runtime ,其他设置为runtime only 。所有的都设置为explicit rebuild。A为什么要设置为rebuild as needed?
      

  5.   

    具体情况不是太了解,不过你可以在search path中加入函数所在包的路径试下
      

  6.   

    我现在手上有一个系统也是用到包的,A是一个DESIGN TIME的包,B是一个通用模板包,C是一个工程文件,D,E...是一些子模块,都是DLL形式的.钩上C中的build with runtime package并加入A,B的包名
      

  7.   

    能不能详细说说啊?
    你的D中调用B,然后C调用D \E.....不会报错吗?
      

  8.   

    包 B 编译的时候,需要引用包 A。在DPK中添加 上即可