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