Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 13.06.2011, 12:34   #1
fomikadze
Пользователь
 
Регистрация: 13.06.2011
Сообщений: 17
Смущение запуск программы из под другой программы

Здравствуйте для начала
Задача казалась весьма простой, мне нужно запустить одну программу используя программку которую сам написал. Для это я провол 2 функции WinExec и system. И всё было хорошо, пока я записывал путь к программе вручную, но вот когда я пытаюсь передать уже имеющийся путь (который ввел пользователь) результат нулевой. Ничего не происходит...
Может кто сможет подсказать что с таким делать???

char path[256]; // переменная пути к программе
for(int j=0; j<=(sizeof(prgmList[i+1])/sizeof(prgmList[0][0])); j++)
{
path[j] = prgmList[i+1][j]; // prgmList - хранит в себе строки из файла, включающие путь к программе
}

WinExec (path, SW_NORMAL);

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

Последний раз редактировалось fomikadze; 13.06.2011 в 13:29. Причина: не всё указал
fomikadze вне форума Ответить с цитированием
Старый 13.06.2011, 12:49   #2
Alex11223
Заблокирован
 
Регистрация: 12.01.2011
Сообщений: 19,504
По умолчанию

Я думаю, что телепаты, способные извлечь код из вашего мозга посредством телепатической связи по IP, в отпуске. Покажите код.
Alex11223 вне форума Ответить с цитированием
Старый 13.06.2011, 12:56   #3
fomikadze
Пользователь
 
Регистрация: 13.06.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Я думаю, что телепаты, способные извлечь код из вашего мозга посредством телепатической связи по IP, в отпуске. Покажите код.
Коррективы внесены

Последний раз редактировалось fomikadze; 13.06.2011 в 12:56. Причина: ошибки
fomikadze вне форума Ответить с цитированием
Старый 13.06.2011, 13:07   #4
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 913
По умолчанию

WinExec хочет нуль-терминированную строку. path удовлетворяет этому?
'\' - один или два?
EUGY вне форума Ответить с цитированием
Старый 13.06.2011, 13:12   #5
fomikadze
Пользователь
 
Регистрация: 13.06.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
WinExec хочет нуль-терминированную строку. path удовлетворяет этому?
'\' - один или два?
'\' - везде по два, всё как положено
строка должна удовлетворять, в противном случае, вопроса "почему ничего не происходит" не возникло
fomikadze вне форума Ответить с цитированием
Старый 13.06.2011, 13:26   #6
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 913
По умолчанию

То есть ты хочешь сказать, что приведенный тобой цикл копирует из массива prgmList в массив path корректную строку. Извини, есть большие сомнения, что копирование имеет место быть.
Код:
char path[256]; 
for(int j=0; j<=(sizeof(prgmList[i+1])/sizeof(prgmList[0][0])); j++)
{
path[i] = prgmList[i+1][j]; 
}
Идет итерация j, а что делает i ?
EUGY вне форума Ответить с цитированием
Старый 13.06.2011, 13:30   #7
fomikadze
Пользователь
 
Регистрация: 13.06.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от EUGY Посмотреть сообщение
То есть ты хочешь сказать, что приведенный тобой цикл копирует из массива prgmList в массив path корректную строку. Извини, есть большие сомнения, что копирование имеет место быть.
Код:
char path[256]; 
for(int j=0; j<=(sizeof(prgmList[i+1])/sizeof(prgmList[0][0])); j++)
{
path[i] = prgmList[i+1][j]; 
}
Идет итерация j, а что делает i ?
там была небольшая опечатка) в path итерация идёт по j
fomikadze вне форума Ответить с цитированием
Старый 13.06.2011, 13:47   #8
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 913
По умолчанию

Ну тогда, ставишь точку остановки на WinExec, и внимательно смотришь watch. Есть ли 0 в конце строки и почему оказалось два слеша.

Последний раз редактировалось EUGY; 13.06.2011 в 13:50.
EUGY вне форума Ответить с цитированием
Старый 13.06.2011, 13:47   #9
fomikadze
Пользователь
 
Регистрация: 13.06.2011
Сообщений: 17
Смех Спасибо

Благодарю всех кто это прочёл, решение оказалось правильным, просто в коде были маленькие несостыковочки.
fomikadze вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск одной программы из другой CodeNOT Общие вопросы C/C++ 15 27.05.2011 21:46
Запуск программы из программы MsWindows Общие вопросы C/C++ 3 11.05.2011 20:23
запуск программы под правами администратора jihot Общие вопросы Delphi 2 06.12.2010 16:27
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 13:33
Запуск программы из под лоадера. BoryaPop Общие вопросы Delphi 2 11.03.2008 08:11


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS