валится CreateProcess
От: VladM2  
Дата: 19.02.03 16:36
Оценка:
Доброго времени суток братья и сестры.
Подскажите плз.

Я вызываю CreateProcess (своего exe-шника).

CreateProcess(NULL,TempBuf, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)

TempBuf — сомандная строка к exe + " " + параметр
TempBuf это у меня char*
память ему ведяляю достаточно, и пишу туда вроде правильно.

при длинне TempBuf до 30000 смволов все ОК,
при большей — валится и все тут.

GetLastError при это выдает 87-ую ошибку (типа не верно задан параметр)

Конечно изврат так юзать CreateProcess, но боюсь что иначе никак

Есть у кого-нить идеи???

19.02.03 19:37: Перенесено модератором из 'C/C++' в WinAPI — ХД
Re: валится CreateProcess
От: Frostbitten Россия  
Дата: 19.02.03 16:51
Оценка: 2 (1)
Здравствуйте, VladM2, Вы писали:

VM>Я вызываю CreateProcess (своего exe-шника).


VM>при длинне TempBuf до 30000 смволов все ОК,

VM>при большей — валится и все тут.
VM>Конечно изврат так юзать CreateProcess, но боюсь что иначе никак

Да, это извращение, тем более, что что процес свой.
Копай лучше в сторону memmory mapped files. У CreateFileMapping можно указать INVALID_HANDLE_VALUE для файла, тогда объект mmf будет создан в памяти (пусть и виртуальной , а также будет иметь глобальное имя (если не ошибаюсь, совсем глобальное — даже по сети будет видно, хотя не уверен), которое ты сам задашь, так вот это имя и передавай в кач. параметра процессу.
Re: валится CreateProcess
От: IPv6 Казахстан  
Дата: 19.02.03 17:03
Оценка:
Здравствуйте, VladM2, Вы писали:

VM>Доброго времени суток братья и сестры.

VM>Подскажите плз.

VM>Я вызываю CreateProcess (своего exe-шника).

VM>CreateProcess(NULL,TempBuf, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)
***
VM>Конечно изврат так юзать CreateProcess, но боюсь что иначе никак
VM>Есть у кого-нить идеи???

Может у тебя жестко задан буфер как? lpCommandLine (второй параметр) должен быть НЕ constб т.к. он [in, out], winapi оставляет за собой право его модифицировать
хотя странно вообще как-то
Re[2]: валится CreateProcess
От: VladM2  
Дата: 19.02.03 17:34
Оценка:
Здравствуйте, Frostbitten, Вы писали:

F>Копай лучше в сторону memmory mapped files. У CreateFileMapping можно указать INVALID_HANDLE_VALUE для файла, тогда объект mmf будет создан в памяти (пусть и виртуальной , а также будет иметь глобальное имя (если не ошибаюсь, совсем глобальное — даже по сети будет видно, хотя не уверен), которое ты сам задашь, так вот это имя и передавай в кач. параметра процессу.


Да, это скорее всего подойдет, но только есть нюанс (экземпляров может быть несколько )
В этом случае я понимаю, что надо будет генерить уникальное имя отображаемого в память файла, с учетом уже отображенных...
Ну да ладно , терпение и трут — все передрут
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.