![]() |
|
|
![]()
|
|
| RaP1D |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 12.10.2008 Репутация: нет Всего: нет |
Пишу оболочку для кодировщика, по принципу запуска консольного приложения с параметрами:
Смысл в следующем: 1) Нажимаем кнопку Обзор и указываем файл:
2) Нажимаем кнопку Старт:
Другими словами: сначала указываем файл, этот файл записывается в текстовую форму, затем данные из текстовой формы записываются в переменную fileName и к ним добавляются параметры, затем происходит запуск paradox.exe, при этом fileName - параметры запуска для него. Почему-то ShellExecute отказывается вообще запускать paradox.exe с параметрами fileName. Странно, ведь fileName имеет тип CString и fileDialog.GetPathName() тоже возращает CString. Если же делать вызов так:
Все ПУЧКОМ!!! Если делать так:
Тоже работает на УРА!!! Проходил дебаггером, вроде в fileName вписывается тоже самое, что и в aaa. Но не пашет! Также я пробывал без вывода в текстовое поле, т.е.:
Но не пашет! Я думаю ошибка именно в fileDialog.GetPathName()... Как её решить??? А и еще, если fileName использовать не для параметров, я для имени файла (вместо _T("paradox.exe")), то все ОК!!! Это сообщение отредактировал(а) RaP1D - 14.10.2008, 08:45 |
||||||||||
|
|||||||||||
| RaP1D |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 12.10.2008 Репутация: нет Всего: нет |
Теперь я уверен, что ошибка в fileDialog.GetPathName()
Пробовал запускать так:
Так, если параметры вписать вручную, то все ОК. Если кнопкой Обзор, т при Старте пишет, что файл paradox.exe не найден... Это как? Можно ли заменить CFileDialog fileDialog(TRUE,NULL,_T("*.*"),NULL,_T("Все файлы (*.*)|*.*|")); на что то другое, чтобы пахало? Это сообщение отредактировал(а) RaP1D - 14.10.2008, 08:46 |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
RaP1D
Есть такой параметр, как текущая рабочая папка. В ParadoxStart, перед ShellExecute, вставьте код:
И посмотрите, соответствует ли указанный путь папке, где лежит "paradox.exe"? Добавлено через 1 минуту и 25 секунд И прошу вас, занесите весь код в тэги, чтобы удобно было читать. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| RaP1D |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 12.10.2008 Репутация: нет Всего: нет |
Хоть убей, не работает! Вот кусок кода:
Если без кнопки Обзор, то все ОК, если же нажать кнопку Обзор, а затем Старт (параметры из текстового поля заносятся в fileName), то paradox.exe не найден!!! Проверял дебагом, в buf лежит нужный путь, но paradox.exe он не видит (и где он его только ищет?)!!! Это сообщение отредактировал(а) RaP1D - 14.10.2008, 09:07 |
|||
|
||||
| RaP1D |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 12.10.2008 Репутация: нет Всего: нет |
Ура нашел проблему!!!
При использовании CFileDialog fileDialog(TRUE,NULL,_T("*.*"),NULL,_T("Все файлы (*.*)|*.*|")) слетает текущая папка на ту, которую указываешь там... Т.е. в buf помещается левая папка... Следовательно туда нужно занести переменную до того, как нажата кнопка Обзор. Вопрос: как заполнить buf в OnInit, чтобы переменная была доступной в другой функции? |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
Обычно, при инициализации приложения, куда-нибудь записывается рабочая папка, и потом, при необходимости, используется для SetCurrentDirectory.
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| RaP1D |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 12.10.2008 Репутация: нет Всего: нет |
Все! Получилось! Работает!
Другой вопрос: Как остановить выполнение функции? Допустим посреди ф-ции есть if и если он не выполняется функция останавливается (вырубается)... Это сообщение отредактировал(а) RaP1D - 14.10.2008, 16:48 |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: нет Всего: 52 |
RaP1D
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |