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

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

Здравствуйте для начала
Задача казалась весьма простой, мне нужно запустить одну программу используя программку которую сам написал. Для это я провол 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,288
Репутация: 3739

icq: 512-765
skype: alexp.frl
По умолчанию

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

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

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

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

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

То есть ты хочешь сказать, что приведенный тобой цикл копирует из массива 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
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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
Адрес: Мурманск
Сообщений: 913
Репутация: 132
По умолчанию

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


07:17.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.