Можно ли запустить функцию как процесс в ржавчине? - PullRequest
0 голосов
/ 04 октября 2019

ржавчина std::process::Command;структура принимает Command::new(program), где программа - это путь к программе, которая должна быть выполнена, как показано в примере ниже.

let output = if cfg!(target_os = "windows") {
    Command::new("cmd")
            .args(&["/C", "echo hello"])
            .output()
            .expect("failed to execute process")

Можно ли создать новый процесс в windows в ржавчине для запуска функции?

1 Ответ

0 голосов
/ 05 октября 2019

Короче говоря, вы не можете, для создания нового процесса требуется гораздо больше информации, чем просто код, который он будет выполнять. См. CreateProcess Системный вызов Windows.

Но вы можете выбрать один из следующих вариантов:

  1. Вместо этого создать поток.
  2. Создать процесс, в котором исполняемый файл - это та же программа, которая выполняется, но проходитдругой аргумент, который запускает выполнение интересующей вас функции.
  3. Создайте Сегмент общей памяти .
  4. Создайте третью библиотеку, содержащую вашу функцию, и поделитесь ею с другимиваша оригинальная программа и та, которую вы создали.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...