有沒有什麼辦法可以讓一個線程分支進入它自己的獨立進程?我知道有CreateProcess函數,但據我所知,您只能使用它運行外部應用程序。我一直在要求什麼?C++線程來分離進程
1
A
回答
3
這在Windows下是不可能的。在Posix平臺上,預期的效果可以通過fork()
獲得。
3
這是可能的。
您可以使用虛擬應用程序和CREATE_SUSPENDED標誌調用CreateProcess,以免它立即運行。然後,您可以使用VirtualAllocEx在創建的進程中分配內存空間,並使用WriteProcessMemory將代碼和數據寫入其中。然後取消暫停過程來運行它。
您也可以使用CreateRemoteThread創建在另一個現有進程的上下文中運行的進程。
所以你想要做什麼是可能,但在Windows環境下做真的不是一件簡單的事情,所以你必須有一個很好的理由才能做到這一點。
相關問題
- 1. C++ 11線程分離
- 2. 分離線程
- 3. 如何關閉線程分離C++?
- 4. 分離線程的線程庫清理
- 5. pjsip c#,System.AccessViolationException在分離線程上應答來電時
- 6. 等待分離的線程來完成在C++
- 7. perl線程自我分離
- 8. Java線程調度分離
- 9. PHP頁面進程分離
- 10. Windows C++進程與線程
- 11. Java進程崩潰 - 需要幫助來分析線程轉儲
- 12. 獲取一個std ::線程來分離和終止自己
- 13. Linux時間分割進程或線程
- 14. 分析java進程的線程轉儲
- 15. C多線程來源
- 16. 分離JRuby中線程的內存
- 17. 分離的線程執行結束
- 18. C++線程或併發進程
- 19. setitimer,SIGALRM和多線程進程(linux,c)
- 20. 如何啓動分離進程並等待父進程終止?
- 21. Mdbg:無法從進程中分離
- 22. 在IIS中分離猖獗的進程
- 23. 從父項分離子進程
- 24. 分離通過線程加載數據和UI Objecive C/Cocoa
- 25. 應用程序線程和Qt線程之間的清晰分離(Python-PyQt)
- 26. iOS應用程序使用儀器進行無線分析:iPhone始終離線
- 27. 線程和進程?
- 28. 進程與線程
- 29. 線程或進程
- 30. 線程和進程
'fork()'不能在Windows上工作嗎? – sbi 2010-04-11 19:03:45
我相信Cygwin提供了一個實現,同樣由Jed Smith給出的答案比我的更具有洞察力:http://stackoverflow.com/questions/1814903/running-fork2-from-windows-with-cygwin-possible – 2010-04-11 19:05:46
The Windows內核知道如何「fork()」,但據我所知,這不能通過Win32接口直接訪問。您必須使用其他API,例如「Services for Unix」(http://technet.microsoft.com/en-us/library/bb496506.aspx)或Cygwin(http://www.cygwin.com/)。 – 2010-04-11 19:08:31