大家看看下面两段语句有错吗?它们在我程序中的编译后的运行结果是不一样的。
语句上的差别是中间空行数不一样。Tfrm继承自TForm,tempDataSet :TADODataSet.////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
destructor Tfrm.Destroy;
begin  FreeAndNil( tempDataSet ) ;  inherited ;end;
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
destructor Tfrm.Destroy;
begin  FreeAndNil( tempDataSet ) ;
  
  inherited ;end;
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////

解决方案 »

  1.   

    可能吗?理论上来说,编译器处理空行的时候内存的某个地址被改了,而你恰恰其他地方非法调用了这个地址的东西,导致结果不同......理论上而已,我也不知道有没可能发生,不过说到底应该是你的程序的问题
      

  2.   

    嘿....................,我知道是我程序的问题,我今天一直被这个问题弄着,我检查了我的程序,我自己创建的对象都在使用后就释放了,也许是我使用的第三方控件的问题,比如有的地方设置不对,但问题并不是每次都出现,编译好的结果有时有问题有时没问题,同样的使用方式下。也许我的系统也要修理一下了。555555555555555555555555