Y a-t-il un moyen de faire en sorte que le thread se connecte à son propre processus indépendant? Je sais qu'il y a la fonction CreateProcess mais pour autant que je sache, vous ne pouvez utiliser que des applications externes. Est ce que je demande du tout possible?Fil C++ pour séparer le processus
Répondre
Ce n'est pas possible sous Windows. Sur les plates-formes Posix, l'effet souhaité pourrait être atteint par fork()
ing.
C'est possible.
Vous pouvez appeler CreateProcess avec une application factice et avec le drapeau CREATE_SUSPENDED donc il ne fonctionne pas immédiatement. Vous pouvez ensuite utiliser VirtualAllocEx pour allouer de l'espace mémoire dans le processus créé et WriteProcessMemory pour y écrire du code et des données. Et puis relâchez le processus pour l'exécuter.
Vous pouvez également utiliser CreateRemoteThread pour créer un processus s'exécutant dans le contexte d'un autre processus existant.
Donc ce que vous voulez faire est possible, mais ce n'est vraiment pas une chose simple à faire dans un environnement Windows, donc vous devriez avoir une très bonne raison de vouloir le faire.
- 1. Création d'un motif pour séparer les messages du processus réel
- 2. Séparer les règles métier des processus métier
- 3. Besoin d'un processus d'arrière-plan. Fil?
- 4. Deux arguments pour le processus en C#
- 5. C++ Séparer les compilateurs pour les classes (vtables)?
- 6. C# et sans fil
- 7. C++ division de fil dans le microprocesseur
- 8. C# fonctions de fil
- 9. Meilleur moyen de réveiller un fil pour quitter? C#
- 10. Séparer le code à organiser
- 11. Problème Avec le fil
- 12. NSScanner pour séparer la phrase en mots (objectif C)
- 13. temps d'exécution du fil C++
- 14. Comment répartir les processus au fil du temps obtenir le nombre minimum de "collisions"
- 15. créer Dynamiquement fil dans C++
- 16. Séparer le code en un seul formulaire [C#]
- 17. Augmenter la mémoire du processus python au fil du temps
- 18. C# CF Redémarrez un fil
- 19. Obtenir le processus parent/Redémarrer un processus C#
- 20. Workflow Foundation Séparer le schéma
- 21. fil boost C++ réutilisation threads
- 22. Comment faire pour tuer le processus mysql à travers C#
- 23. SslStream.ReadByte() bloque le fil?
- 24. C++ pour les réseaux de capteurs sans fil
- 25. C++ Démarrer le processus avec l'argument
- 26. Corriger le fil détruire
- 27. PHP: le fil d'Ariane?
- 28. Silverlight C# webservices attendre le processus
- 29. javascript pour créer le processus
- 30. C# - lire le texte d'un processus existant
Est-ce que 'fork()' ne fonctionne pas sous Windows? – sbi
Je crois Cygwin fournit une implémentation, aussi cette réponse donnée par Jed Smith est un peu plus perspicace que le mien: http://stackoverflow.com/questions/1814903/running-fork2-from-windows-with-cygwin-possible –
Le Le noyau Windows sait comment 'fork()' mais, autant que je sache, ce n'est pas accessible directement via l'interface Win32. Vous devez utiliser une autre API telle que "Services pour Unix" (http://technet.microsoft.com/en-us/library/bb496506.aspx) ou Cygwin (http://www.cygwin.com/). –