我的程序出现了这样的错误。
---------------------------
Debugger Exception Notification
---------------------------
Project Moto.exe raised exception class EAccessViolation with message 'Access violation at address 00404DFF in module 'Moto.exe'. Read of address FC458BFB'. Process stopped. Use Step or Run to continue.
---------------------------
OK   Help   
---------------------------
出现这个错误的地方是一个function 只返回一个string 类型的值。
有时候这个错误也会出现在其它的地方。
在出错之后就会说不定会进入哪个过程当中。
调了一下午了。也重起了N次机器。
请有经验的版主和高手们帮忙看看。

解决方案 »

  1.   

    补充一点,这个错误出现的地方,都是在返回string类型的函数中。
      

  2.   

    试图使用指向为nil的对象的成员。————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  3.   

    在这个function 中没有这样操作的代码。
      Result := '';
      if FBaoBiaoItem.BianMa = '01' then    //FBaoBiaoItem.BianMa  是类的成员。
      begin
        Str := SQL_01;  //const 值 是sql语句。
      end;
    就是这样一个过程,当然这个过程很长。但是语句都类似。
    奇怪的是,对于同一个过程如果执行.exe文件,不会出错。
    但是在调试的时候就会出错。
      

  4.   

    從你的代碼, 還看不出問題, 可參考:
    http://borland.mblogger.cn/aiirii/posts/2530.aspx可能是類的實例化有問題吧
      

  5.   

    http://borland.mblogger.cn/aiirii/posts/2530.aspx
    找不到服务器
      

  6.   

    是否采用了继承方面的东西?或许你的这个方法是在它的爸爸里面实现的!如果是的话,我曾经出现这个问题!不过后来uses了要使用的模块后就没问题了!我猜应该是你的某个对象或者某个值是nil
      

  7.   

    to : kfarvid(永远爱着一个叫"傲"的女孩) 
    在我的程序里有一个unit里放着程序要用到的所有的类。
    FBaoBiaoItem.就是报表类的一个RECORD。
    我再好好的看看。应该如何才能避免这样的问题呢。
    请指教。谢谢。
      

  8.   

    在这个function 中没有用到对象。
    会不会是因为这个过程的代码太长了。
    调试中
      

  9.   

    应该是你的某个对象或者某个值是nil
      

  10.   

    FBaoBiaoItem 你这个是个全局的对象 应该不是对象指针吧 你要保证这个对象没有被释放。。