Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка, не могу понять какая... Про CreateProcces()... 
:(
    Опции темы
np9mi7
  Дата 21.7.2004, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Добрый день...

У меня небольшая проблемка...

Есть код
Цитата

#include <windows.h>
#include <conio.h>
//-----------------------------------------------
int main(int argc,char* argv[])
{
//------------------------------------------
//то что нужно процессу 
STARTUPINFO si;
PROCESS_INFORMATION pi;
GetStartupInfo(&si);
//------------------------------------------
  //создаем сам процесс
  if(!CreateProcess(
  "c:\\arc\\arj32.exe",
  " a -r -y name c:\arc",
  NULL,
  NULL,
  FALSE,
  0,
  NULL,
  NULL,
  &si,
  &pi))
  {
  //ошибка при запуске
  exit(0);
  }
//-------------------------------------------
getch();
//-------------------------------------------
return 1;
}


Ну так вот при этом запуске архиватор выдает ошибку
Цитата

invalid command: name


Самое прикольное в том, что при запуске того же самого из коммандной строки все в норме

Цитата

c:\arc\arj32.exe a -r -y name c:\arc


Те все работает и корректно архивируется...
Я уверен на 100%, что это касяк со вторым параметром функции....Только какой??? МОжет я что-то ни так делаю???

Заранее благодарен за помощь...


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
_hunter
Дата 21.7.2004, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



c:\\arc

Это сообщение отредактировал(а) _hunter - 21.7.2004, 16:42


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
np9mi7
Дата 21.7.2004, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Неа...

Не в этом дело....
Если так то просто ничего не запускается....(в смысле вообще сам процесс)..

У меня проблема вдругом, процесс запускается, вот только параметры я ему каряво передаю...Только понять бы эту карявость...

Это сообщение отредактировал(а) arajan - 21.7.2004, 16:54


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
_hunter
Дата 21.7.2004, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



вот именно что коряво -- ты ему один бэк-слэш недодаеш
и что значит "просто ничего не запускается"? какую ошибку дает?
ты пишеш так:

Код
CreateProcess(
 "c:\\arc\\arj32.exe",
 " a -r -y name c:[b]\\[/b]arc",
 NULL,
 NULL,
 FALSE,
 0,
 NULL,
 NULL,
 &si,
 &pi)

?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
p0s0l
Дата 21.7.2004, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 2
Всего: 112



Попробуй так:
Код

if(!CreateProcess(
 NULL,
 "c:\\arc\\arj32.exe a -r -y name c:\\arc",

а может name не надо ?...


Это сообщение отредактировал(а) p0s0l - 21.7.2004, 23:38


--------------------
С уважением, г-н Посол.
PM   Вверх
Borisff2003
Дата 22.7.2004, 05:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: 1
Всего: 1



У меня в проге так
Код

//создаем сам процесс
 if(!CreateProcess(
 NULL,
 "c:\\arc\\arj32.exe a -r -y name c:\\arc",
 NULL,
 NULL,
 FALSE,
 0,
 NULL,
 NULL,
 &si,
 &pi))
 {
 //ошибка при запуске
 exit(0);
 }


из мсдн по поводу первого параметра
Windows NT/2000/XP: If the executable module is a 16-bit application, lpApplicationName should be NULL, and the string pointed to by lpCommandLine should specify the executable module as well as its arguments.
--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
_hunter
Дата 22.7.2004, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



да но arj32 вряд ли 16-ти битное приложение wink.gif


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
np9mi7
Дата 22.7.2004, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Кстати вариант:
Цитата

/создаем сам процесс
if(!CreateProcess(
NULL,
"c:\\arc\\arj32.exe a -r -y name c:\\arc",
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi))
{
//ошибка при запуске
exit(0);
}


Заработал...
Правда теперь появилось вопросов еще больше....

1)Почему не работает мой первый вариант корректно??? Не понятно что передается коммандной строке при вызове:
Цитата

//создаем сам процесс
  if(!CreateProcess(
  "c:\\arc\\arj32.exe",
  " a -r -y name c:\\arc",
  NULL,
  NULL,
  FALSE,
  0,
  NULL,
  NULL,
  &si,
  &pi))
  {
  //ошибка при запуске
  exit(0);
  }

2)как запускаются процессы(одновременно или идут один за другим)???
При вызове:
Цитата

//создаем сам процесс
  if(!CreateProcess(
  "c:\\arc\\arj32.exe",
  " a -r -y name c:\\arc",
  NULL,
  NULL,
  FALSE,
  0,
  NULL,
  "c:\\arc",
  &si,
  &pi))
  {
  //ошибка при запуске
  exit(0);
  }
CopyFile("c:\\arc\\name.arj","c:\\save\\name.arj",true);


Насколько я понимаю это происходит одновременно...То тогда как zделать так чтобы они шли последовательно???

Просто мне нужно написать что-то типа:
архивируем->закончили архивировать->откопировали созданный архив->закончили->опять архивируем.....

Заранее благодарен за помощь...


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
_hunter
Дата 22.7.2004, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



на первый вопрос ты и сам можеш ответить smile.gif -- напиши консольное приложение и посмотри что ему передается

для ожидания завершения процесса можно использовать WaitForSingleObject(pi.hProcess,INFINITE);
-- фунция _выполнится_ только по завершению процесса


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
np9mi7
Дата 22.7.2004, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



При таком запуске не выводиться на экран то что я передаю...

Или что другое имеешь в виду???


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
_hunter
Дата 24.7.2004, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 16
Всего: 98



а ты выведение на экран параметров сделал?
примерно так:
Код
//---------------------------------------------------------------------------

#include <windows.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR lpCmdLine, int nCmdShow)
{
   MessageBox(NULL, lpCmdLine, "", MB_OK);

   return 0;
}
//---------------------------------------------------------------------------



--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1033 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.