Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
IIIa66uMEM6eP
заставил Бендера
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
#1

ShellExecute - конфликтация типов - C++

08.06.2011, 00:27. Просмотров 753. Ответов 9
Метки нет (Все метки)

Разрешите вопрос о конфликтации типов при открытии папки.
C++
1
 ShellExecute(0, "explore", sName, NULL, NULL, SW_SHOWNORMAL);
где в sName хранится путь к папкам, AnsiString sName;

Добавлено через 3 часа 17 минут
upd...

Добавлено через 1 час 8 минут
upd....

Добавлено через 25 минут
Ошибка [C++ Error] Unit1.cpp(88): E2034 Cannot convert 'AnsiString' to 'const char *'
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2011, 00:27     ShellExecute - конфликтация типов
Посмотрите здесь:

C++ Найти предельные значения для целочисленных типов. Не использовать заранее определенные константы границ типов.
C++ ShellExecute WinExec ....
C++ ShellExecute не выполняет консольное приложение на языке С
Внесение URL адресса в IE средствами ShellExecute C++
C++ Подскажите с вводом переменной в строку ShellExecute!!!Please!!!
C++ ShellExecute - манипулирование окном программы. Как сделать?
Как принять параметры приложением, запущенным через ShellExecute C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
1897 / 1429 / 106
Регистрация: 29.05.2011
Сообщений: 2,985
08.06.2011, 00:58     ShellExecute - конфликтация типов #2
Ну а кто будет читать про интерфейс к Builder-специфичной AnsiString?
Впрочем, у них почти у всех одинаково
C++
1
ShellExecute(0, "explore", sName.c_str(), NULL, NULL, SW_SHOWNORMAL);
IIIa66uMEM6eP
заставил Бендера
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
08.06.2011, 01:34  [ТС]     ShellExecute - конфликтация типов #3
grizlik78, спсибо, работает) жаль мою проблемку не решило

Добавлено через 3 минуты
Цитата Сообщение от grizlik78 Посмотреть сообщение
sName.c_str()
а возможны ли другие функции в этой связке? не .c_str
grizlik78
Эксперт С++
1897 / 1429 / 106
Регистрация: 29.05.2011
Сообщений: 2,985
08.06.2011, 01:43     ShellExecute - конфликтация типов #4
В связке с ShellExecute? Вряд ли. Но я про AnsiString не знаю почти ничего
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
08.06.2011, 07:08     ShellExecute - конфликтация типов #5
C++
1
2
3
AnsiString path="e:\\games\\";
AnsiString param="EXPLORER \"" + path + "\"";
WinExec(param.c_str(), SW_SHOW);
или
C++
1
2
AnsiString sName="e:\\games";
ShellExecute(Application->Handle, "explore", sName.c_str(), NULL, NULL, SW_SHOWNORMAL);
IIIa66uMEM6eP
заставил Бендера
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
08.06.2011, 10:51  [ТС]     ShellExecute - конфликтация типов #6
Валидно?
C++
1
2
3
4
5
6
  
  AnsiString sName = ParamStr(0);            // Полное имя EXE.
  AnsiString sPth  = ExtractFilePath(sName); // Путь к текущему каталогу.
 AnsiString sName_short;
sName_short = sName.Delete(sName.Length(),4); // полное имя без EXE, удалено
ShellExecute(Application->Handle, "explore", sName.c_str(), NULL, NULL, SW_SHOWNORMAL);
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
08.06.2011, 11:00     ShellExecute - конфликтация типов #7
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
Валидно?
Не очень.
Вы что-то делаете для получения sName_short (а судя по отладчику оно неверно получается), для получения sPth, а в функцию все равно передаёте sName.c_str()
А надо так
C++
1
2
3
AnsiString sName = ParamStr(0);            // Полное имя EXE.
AnsiString sPth  = ExtractFilePath(sName); // Путь к текущему каталогу.
ShellExecute(Application->Handle, "explore", sPth.c_str(), NULL, NULL, SW_SHOWNORMAL);
IIIa66uMEM6eP
заставил Бендера
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
08.06.2011, 11:25  [ТС]     ShellExecute - конфликтация типов #8
mimicria, жаль, принципиально ни чего не изменилось, все равно спасибо
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
08.06.2011, 11:44     ShellExecute - конфликтация типов #9
Цитата Сообщение от IIIa66uMEM6eP Посмотреть сообщение
mimicria, жаль, принципиально ни чего не изменилось
А что должно было измениться? Код рабочий
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2011, 11:52     ShellExecute - конфликтация типов
Еще ссылки по теме:

C++ Как передать параметры через ShellExecute - C++
Как передать HWND параметром через ShellExecute? C++
Разработайте перегружены функции, в которые передаются два параметра типов int или float и три параметра типов C++
ShellExecute не находит программу в своей же папке C++
C++ Как открыть определенный файл через shellexecute?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
IIIa66uMEM6eP
заставил Бендера
432 / 288 / 10
Регистрация: 05.12.2010
Сообщений: 1,642
Записей в блоге: 6
08.06.2011, 11:52  [ТС]     ShellExecute - конфликтация типов #10
Цитата Сообщение от mimicria Посмотреть сообщение
А что должно было измениться? Код рабочий
да, до шаманства с shel функцией код работал как нужно.
смысл был - после нажатия на exe открывалась скрытая папка
Yandex
Объявления
08.06.2011, 11:52     ShellExecute - конфликтация типов
Ответ Создать тему
Опции темы

Текущее время: 07:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru