2013-09-23 2 views
2

Можно ли передать указатель на массив из моего приложения в консольную программу exe?Могу ли я передать * массив в EXE?

Сценарий: мое приложение в некоторых случаях требует дополнительных действий над содержимым массива, которое выполняется EXE. Так что, если его можно отправить указатель на EXE и вернуть его после модификации?

+8

Возможно, вы захотите [разделяемая память] (http: //msdn.micro soft.com/en-us/library/windows/desktop/aa366551.aspx). –

+1

Как ваш .EXE что-то делает в массиве? Ожидает ли значение массива на стандартном входе? Он ожидает, что файл будет содержать данные? Без информации об этом .EXE мы не можем вам помочь. – fjardon

ответ

5

Для обмена данными между отдельными процессами требуется средство межпроцессного взаимодействия.

Варианты включают в себя:

  • совместно используемой памяти
  • трубы
  • , возможно, даже розетки

Какой из вышеперечисленных подходит для вас, зависит от типа и количества данных, которые вы хотите обмен, как часто вы хотите его обменять и т. д.

1

№. Параметры, заданные для нового процесса операционными системами, представляют собой массив строк. Вы не можете заменить этот массив и не сделать одну из строк массивом.

3

Вы можете сделать это, используя функции execv*(), чтобы запустить новый процесс из процесса, который предоставляет массив, но ограничен массивом указателей символов (char *).

Смежные вопросы