肯请指教

解决方案 »

  1.   

    你的 runtime package 是动态的还是静态的?一般重新 compile package,然后再 build 源程序一下,再运行的时候就可以 trace 了。
      

  2.   

    我的程序中有一个.exe,它会调用很多bpl,我现在想对其中一个调试,我运行.exe程序,然后在那个bpl的源文件中设断点,总是叉叉,runtime package怎么区分是动态的还是静态的,反正是.exe程序调用哪个bpl,就会load进来,应该是动态的吧
      

  3.   

    每一个 bpl 的 form 最后有没有这些个语句?
    initialization
      RegisterClass(TForm2);
    finalization
      UnRegisterClass(TForm2);有的话应该是动态的 load run-time package,没有就是静态的 runtime package。静态的就重新 compile package,生成全新的 bpl,然后再 build 一下源程序 exe,把最新的 bpl 信息包含进去,再一次运行的时候就可以 trace 了。当然了,别忘了勾上 project->option->package->build with runtime packages. 并且把你的 bpl 名加入下面的栏位。
      

  4.   

    另外,主程序 build all 的时候,需要最新的子窗体的 *.dcp (compile runtime package 的时候生成的),这样编译以后应该就可以跟踪了。
      

  5.   

    to hoho5999: 还是不行,是不是还有什么其他的需要设置的,比如project->option->directories/conditionals下的几个directory和path
      

  6.   

    静态的是可以跟踪的,动态的我就没弄过了,不太清楚。不过建议你试一下:1. 重新 compile 所有 package,生成全新的 *.bpl 和 *.dcp。2. 将 *.dcp 和 *.bpl copy 至主程序目录下覆盖旧的 *.dcp 和 *.bpl,build all 主程序。3. Trace 试试看?不行的话,我也不知道了。去请教高高手吧。
      

  7.   

    你重新 compile 过 runtime package 了?生成新的 bpl dcp 没有啊?确定要用全新的覆盖原先的 dcp bpl 的!!!
      

  8.   

    我重新complie过runtime package 了,也生成新的bpl dcp 了,这些是在主程序目录下还是应该在c:\program files\borland\delphi6\project\bpl下?
      

  9.   

    我的工程是将子程序的 dcp 放在主程序目录下,将 build 生成的主程序 exe 放在上一层 Exe 目录里,主程序的 output directory= ..\exe,然后,子程序的 bpl 跟 exe 放在一起。没什么问题的呀。实在不行,你就清空主程序的所有的 directory,然后把所有的 dcp 和 bpl copy 到主程序当前目录下试一次吧。
      

  10.   

    最后一种情况就是:你的 bpl 里面有代码错误,你可以对应每一个子程序新建一个工程,单独调试,编译并运行所有子程序,确定都没有问题。一般我都是这样做的,先调试好子程序,再在主程序里面 add 子程序的 unit 进来,加入对应的 bpl 名字,然后编译包,再编译主程序。我碰到的应该就是这些问题了。