請熟悉Delphi BPL包的朋友給我一些幫助.目前的情況描述:Project Group內有如下項目.
1. NolascoSYS.exe 
2. NisStdInsuD7.bpl
3. NisStdAccD7'.bpl另外有一個uGlobalEx單元, 這個單元內包含一些公用函數, 方便給如上三個項目使用.目前出現的問題如下:
問題一: 假設在NisStdInsuD7或NisStdAccD7'包內的uses 部位 use   uGlobalEx.將會出現如下編譯提示.a提示. [Warning] Unit 'uGlobalEx' implicitly imported into package 'NisStdInsuD7'問題二: 假設在NisStdInsuD7和NisStdAccD7'包的Contains中同時加入 uGlobalEx.pas 單元 , 編譯沒有出現warning但是運行時出現如下提示.運行就此中止.
b提示. Project NolascoSYS.exe raised exception class EPackageError with message 'Cannot load package 'NisStdInsuD7.' It contains unit 'uGlobalEx, ' which is also contained in package 'NisStdAccD7'. Process stopped. Use Step or Run to continue.我想要實現的效果:
 NolascoSYS.exe , NisStdInsuD7.bpl, NisStdAccD7'.bpl中可以同時使用uGlobalEx.pas 單元,編譯時不要出現 a 的warning,b的報錯.謝謝!
如果認為分數不夠, 請提出.

解决方案 »

  1.   

    >>a提示. [Warning] Unit 'uGlobalEx' implicitly imported into 將共用的Form做成Package, 需要用到他的在Package的管理介面require加入該Package,
      

  2.   

    >>: aiirii(ari-爱的眼睛) 
    3qs!!
    那里有相關bpl的詳細資料?
      

  3.   

    >>那里有相關bpl的詳細資料?
    http://aiirii.mblogger.cn/posts/2886.aspx
      

  4.   

    我公司开发的程序各个模块都是打包成bpl文件的,你的问题似乎是Uses语句的使用问题,单元与单元之间不能循环Uses,uGlobalEx既然是公共模块为什么又uses了NisStdInsuD7?
    如果两个单元要互相Users,则A模块在Interface部分User B,B在implementation部分User A。
      

  5.   


    >>>>回复人: force2004(牛牛) 
    謝謝回復.我的uGlobalEx單元沒有use  NisStdInsuD7. 
    請仔細閱讀我提出的問題, 既然你有這方面的經驗. 那麼我的問題怎麼解決?再次聲明: 如果誰能真正解決這個問題, 另贈送100分.
      

  6.   

    >>你的问题似乎是Uses语句的使用问题
    胡說
      

  7.   

    你在菜单Tools>>>>Environment Options>>>>Library 选现页面中有一个Library Path的设置,
    把你的uGlobalEx單元的路径填写进去就可以了
      

  8.   

    >>>>>> Blakhawk(黑鹰船长)
    謝謝回復!
    不過你回答的問題有點离題.>>>>>把你的uGlobalEx單元的路径填写进去就可以了
    不用你填,系統幫你填好了.Library path :
    Specifies search paths where compiler can find the source files for the package. The compiler can find only those files listed in the library path. If you try to build your package with a file not on the library path, you will receive a compiler error. 
      

  9.   

    Sorry,我刚才没怎么把问题搞清楚。在包文件的单元里要调用公共模块uGlobalEx.pas就在该单元的uses语句里uses该单元就可以了,只是uGlobalEx.pas这个单元的路径你要添加到delphi的library path里。
      

  10.   

    >>>>> force2004(牛牛) 目前我就是你這種做法.編譯可以通過, 但是運行時出現b提示.
      

  11.   

    >>>>>回复人: maming2003(&天天&) 像你這種'垃圾'的高人, 在csdn很少見, csdn确實不歡迎你!
    既然你認為這是個垃圾問題, 如果你連垃圾問題都不知道, 那麼很簡單的證明你确實比垃圾不如!
      

  12.   

    还有一个问题就是你的uGlobalEx.pas 单元在哪儿,也在一个bpl包文件里吗,如果是,在你的要uses uGlobalEx.pas 的那个bpl的requires里添加该bpl包文件,在contains里不要加入uGlobalEx.pas单元。
      

  13.   

    补充 force2004(牛牛)的问题假设a bpl和b bpl 同时需要use g.pas, 需要注意的几点如下:
    1. a 的contains和b 的contains 内必需只有一个能加入 g.pas.
    2. 如果a 的contains内已加入g.pas, 并且b现在需要用g.pas, 那幺b 的requies 内必需要加入a包的dcp. 反之亦然.
    3. a bpl 和 b bpl 不能同时在contains内加入g.pas