SHFileOperation的问题,为什么执行就停止了?问题解决了,请删除 (100分)

  • 主题发起人 主题发起人 tnndusa
  • 开始时间 开始时间
T

tnndusa

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个类(非窗体类)的destructor Destroy;过程里写如下代码<br>&nbsp; //删除临时文件夹<br>&nbsp; shfo.Wnd &nbsp; &nbsp;:= &nbsp;0;<br>&nbsp; shfo.wFunc &nbsp;:= &nbsp;FO_DELETE;<br>&nbsp; shfo.pFrom &nbsp;:= &nbsp;PChar(ExtractFileDir(FTempPath));<br>&nbsp; shfo.pTo &nbsp; &nbsp;:= &nbsp;nil;<br>&nbsp; shfo.fFlags := &nbsp;FOF_NOCONFIRMATION + FOF_NOERRORUI;<br>&nbsp; shfo.hNameMappings &nbsp;:= &nbsp;nil;<br>&nbsp; shfo.lpszProgressTitle &nbsp;:= &nbsp;nil;<br>&nbsp; shfo.fAnyOperationsAborted &nbsp;:= &nbsp;True;<br>&nbsp; SHFileOperation(shfo);<br>如果在窗体的一个按钮中生成这个类,然后马上释放,当然会执行这段代码,没问题,临时文件夹没了.<br>但如果我在窗体的Create事件中建立类,在窗体的destructor Destroy;释放类,就出问题了,程序退出执行这句就不结束了.不知道在干什么.文件没在使用,我在最后一句设断点,在它没执行前去删除这个文件夹,可以删除,但就算删除后还是不能执行下去,程序就吊在那了:(<br>另,做成了DLL,调试时是用rundll32调用<br><br>只有在窗体(主窗体)的Destroy过程中调用才会停止响应.<br><br>因为rundll32调用DLL中的函数执行完成后就会马上返回,我没有在导出的那个函数中FREE窗体,但是Destroy里的代码还是执行了,只是没有了主进程,才会停止.在导出函数中释放窗体就解决了.<br><br>如果不能删除,领分吧
 
后退
顶部