把一个窗口加入dll中,在程序最后关闭时,用RmDir('文件路径+文件名')删除文件,报告错误‘EinOutError with message I|O 145’,这是怎么回事呢?

解决方案 »

  1.   

    如果你删除的是 DLL ,要先FreeLibrary释放掉它!
    如果是其它的文件,要看文件是否已经被程序打开,先关闭,后释放,再删除!
    最后,注意 DLL 工程是否将 ShareMem 做为第一个被引用文件!
      

  2.   

    我不是删除的dll,我是删除的一个文件夹下面的文本文件。但是在程序里用到了这些文本文件,用完了想删除。删除文件的语句也是在dll内。
      

  3.   

    FILE CLOSE THE TXT FILE BEFORE DELETE EVENT
      

  4.   

    把要删除的文件全关闭,然后用deletefile()删除;
      

  5.   

    RmDir removes the subdirectory with the path specified by S or P. If the path does not exist, is non-empty, or is the currently logged directory, an I/O error occurs.
    //rmdir 删除指定的子目录,如果指定的目录不存在,不为空,或是当前的目录,会有一个I/O错误发生;
      

  6.   

    正如各位所说的这个目录中有文件。但是我用DeleteFile(strSrcDir+sr.Name);为什么无法把文件删除。删除文件那句如下:
          if sr.Attr<>faDirectory then
          begin
            DeleteFile(strSrcDir+sr.Name);
          end;
      

  7.   

    DeleteFile(strSrcDir+'\'+sr.Name);试试看;
      

  8.   

    Another reproducible compiler crash (access violation)
      

  9.   

    错误类型:Another reproducible compiler crash (access violation)