带有DLL的WriteFile

时间:2010-02-08 15:55:58

标签: c++ dll

我正在编写DLL,我想将一些数据写入文件(150k +)

问题是 - WriteFile没有编写它应该编写的所有内容

看起来线程在WriteFile完成其工作之前被终止。

任何想法?感谢

1 个答案:

答案 0 :(得分:3)

如果在线程完成之前退出进程,则所有其他线程将被终止(来自ExitProcess):

  

退出流程导致   以下内容:

     
      
  1. 进程中的所有线程,调用线程除外,   终止他们的执行没有   收到DLL_THREAD_DETACH   通知。
  2.   
  3. 在步骤1中终止的所有线程的状态变为信号。
  4.   
  5. 所有加载的动态链接库(DLL)的入口点函数   使用DLL_PROCESS_DETACH调用。
  6.   
  7. 在所有附加的DLL都执行了任何进程终止代码之后,   ExitProcess函数终止   目前的过程,包括   调用线程。
  8.   
  9. 调用线程的状态变为信号。
  10.   
  11. 关闭进程打开的所有对象句柄。
  12.   
  13. 进程的终止状态从STILL_ACTIVE更改为   流程的退出值。
  14.   
  15. 处理对象的状态变为信号,满足任何状态   那些一直在等待的线程   终止过程。
  16.   

您需要显式等待执行WriteFile的线程完成,通常是通过WaitForSingleObject(thread handle, ...)