Есть ли способ, которым я могу иметь ветвь ветки в свой собственный независимый процесс? Я знаю, что есть функция CreateProcess, но насколько я могу судить, вы можете запускать с ней внешние приложения. Это то, о чем я прошу вообще?C++ поток для отдельного процесса
1
A
ответ
3
Это невозможно под Windows. На платформах Posix желаемый эффект может быть достигнут fork()
ing.
3
Это возможно.
Вы можете вызвать CreateProcess с помощью фиктивного приложения и с флагом CREATE_SUSPENDED, чтобы он не запускался немедленно. Затем вы можете использовать VirtualAllocEx для выделения пространства памяти в созданном процессе и WriteProcessMemory для записи в него кода и данных. А затем отключите процесс, чтобы запустить его.
Вы также можете использовать CreateRemoteThread для создания процесса, выполняющегося в контексте другого существующего процесса.
Так что вы хотите сделать возможно, но это действительно не так просто сделать в среде Windows, поэтому у вас должна быть действительно хорошая причина, чтобы это сделать.
Смежные вопросы
- 1. Создание отдельного процесса Excel
- 2. Запуск отдельного процесса
- 3. Обнаружение отдельного процесса выхода из процесса Windows C#
- 4. Обновление C# для выполнения рабочего процесса из отдельного класса
- 5. Preferred архитектура для запуска отдельного процесса
- 6. Разблокировать поток из другого процесса, в C++
- 7. Как получить статистику для отдельного процесса/потока в SLURM?
- 8. C# - Закрыть поток ввода дочернего процесса
- 9. Выполнение отдельного процесса в родительском процессе
- 10. Входной поток процесса
- 11. MVC - поток процесса
- 12. Выполнение отдельного процесса или потока в Qt
- 13. Безопасен ли поток процесса?
- 14. Выполнение нового полностью отдельного процесса, упакованного внутри исполняемого файла без файла, записанного на диск для отдельного процесса
- 15. Автоматизация экземпляра Visual Studio из отдельного процесса
- 16. Поток ввода для внешнего процесса в Scala
- 17. Создание отдельного процесса из запроса веб-приложения
- 18. Инициирование отдельного процесса изнутри единичного теста
- 19. Внедрение отдельного процесса в диаграмме действий
- 20. Как удалить поток бизнес-процесса
- 21. Перенаправить поток файлов дочернего процесса
- 22. Создание отдельного журнала для каждого процесса Пассажира в приложении Rails
- 23. Срок службы процесса, породившего поток
- 24. Должен drawInRect: для отдельного контекста должен выполняться основной поток?
- 25. Получите выходной поток продолжительного процесса
- 26. Извлечение памяти для другого процесса в C#
- 27. C# отдельный поток для элемента пользовательского интерфейса
- 28. C# - приостановить основной поток и очистить до выхода процесса
- 29. функция отображения для вложенного отдельного списка c
- 30. Закрытие процесса, который был запущен через поток
Не работает 'fork()' в Windows? – sbi
Я считаю, что Cygwin обеспечивает реализацию, и этот ответ, данный Джедом Смитом, немного более проницателен, чем мой: http://stackoverflow.com/questions/1814903/running-fork2-from-windows-with-cygwin-possible –
Ядро Windows знает, как «fork()», но, насколько я знаю, это недоступно непосредственно через интерфейс Win32. Вы должны использовать другой API, такой как «Услуги для Unix» (http://technet.microsoft.com/en-us/library/bb496506.aspx) или Cygwin (http://www.cygwin.com/). –