首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带DLL的WriteFile

带DLL的WriteFile
EN

Stack Overflow用户
提问于 2010-02-08 23:55:58
回答 1查看 280关注 0票数 0

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

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

看起来这个线程在WriteFile完成它的工作之前就被终止了。

有什么想法吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2010-02-09 01:47:41

如果在线程完成之前退出进程,则所有其他线程都将终止(从ExitProcess

退出进程会导致以下情况:

进程中线程的状态(调用线程除外)在没有收到信号通知的情况下终止它们的执行。

  • 在步骤1中终止的所有线程的状态变为DLL_THREAD_DETACH。

  • 使用DLL_PROCESS_DETACH调用所有加载的动态链接库(DLL)的入口点函数。

  • 在所有附加的all执行了任何进程终止代码后,ExitProcess函数终止当前进程,包括调用线程。

  • 调用线程的状态变为signaled。

  • 关闭进程打开的所有对象句柄。

  • 进程的终止状态从STILL_ACTIVE更改为进程的退出值。

  • 进程对象的状态变为有信号,以满足一直在等待进程终止的所有线程。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2222815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档