C ++线程分离进程

时间:2010-04-11 18:59:46

标签: c++ windows multithreading process

有什么方法可以让一个线程分支到它自己的独立进程中?我知道有CreateProcess函数,但据我所知,你只能用它运行外部应用程序。我可能要求的是什么?

2 个答案:

答案 0 :(得分:4)

有可能。

您可以使用虚拟应用程序和CREATE_SUSPENDED标志调用CreateProcess,以便它不会立即运行。然后,您可以使用VirtualAllocEx在创建的进程中分配内存空间,并使用WriteProcessMemory将代码和数据写入其中。然后取消暂停进程来运行它。

您还可以使用CreateRemoteThread创建在另一个现有流程的上下文中运行的流程。

所以你想要做什么可能的,但在windows环境中做这件事并不是一件简单的事情,所以你必须有一个非常好的理由去做。< / p>

答案 1 :(得分:3)

在Windows下这是不可能的。在Posix平台上,fork()可以实现预期的效果。