Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2011, 13: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 в 14:29. Причина: не всё указал
fomikadze вне форума Ответить с цитированием
Старый 13.06.2011, 13:49   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Я думаю, что телепаты, способные извлечь код из вашего мозга посредством телепатической связи по IP, в отпуске. Покажите код.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 13.06.2011, 13:56   #3
fomikadze
Пользователь
 
Регистрация: 13.06.2011
Сообщений: 17
По умолчанию

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

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

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

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

То есть ты хочешь сказать, что приведенный тобой цикл копирует из массива 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, 14: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, 14:47   #8
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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