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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2012, 23:24   #11
bogdan333
Пользователь
 
Регистрация: 26.12.2011
Сообщений: 22
По умолчанию

если чё, то можно через WinExec запускать .ехе
bogdan333 вне форума Ответить с цитированием
Старый 10.04.2012, 09:00   #12
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

WinExec - старая функция, Windows не рекомендует к использованию.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 10.04.2012, 10:01   #13
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Цитата:
Сообщение от bogdan333 Посмотреть сообщение
если чё, то можно через WinExec запускать .ехе
Во втором посте, я писал что запускал и через WinExec.
Как я понял лучше использовать функции использующие юникод?
Drugnir вне форума Ответить с цитированием
Старый 10.04.2012, 10:52   #14
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Drugnir

Код не работает, но правильный.

Утверждение неверное... Код не работает потому что говнокод.

правильный вариант:

ShellExecute(Handle, _T("open"), _T("D:\\1.exe"), NULL, NULL, SW_SHOWNORMAL));
Rififi вне форума Ответить с цитированием
Старый 10.04.2012, 11:19   #15
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
Drugnir

Код не работает, но правильный.

Утверждение неверное... Код не работает потому что говнокод.

правильный вариант:

ShellExecute(Handle, _T("open"), _T("D:\\1.exe"), NULL, NULL, SW_SHOWNORMAL));
Попрошу без выражений, уважаемый. Не знал, что ShellExecute есть в C++ Builder XE, т.к. помощник кода (ctrl+space) выдавал, только ShellExecuteA и ShellExecuteW.

И объясните, пожалуйста, мне, как тупому, Rififi, почему в одном приложении мне пришлось подключать библиотеку tchar.h для вызова макроса _T, а в другом не пришлось?

И из билдера:
Код:
SHSTDAPI_(HINSTANCE) ShellExecuteA(__in_opt HWND hwnd, __in_opt LPCSTR lpOperation, __in LPCSTR lpFile, __in_opt LPCSTR lpParameters,
    __in_opt LPCSTR lpDirectory, __in INT nShowCmd);
SHSTDAPI_(HINSTANCE) ShellExecuteW(__in_opt HWND hwnd, __in_opt LPCWSTR lpOperation, __in LPCWSTR lpFile, __in_opt LPCWSTR lpParameters,
    __in_opt LPCWSTR lpDirectory, __in INT nShowCmd);
#ifdef UNICODE
#define ShellExecute  ShellExecuteW
#else
#define ShellExecute  ShellExecuteA
#endif // !UNICODE
Получается что, если используется UNICODE, то можно сразу писать ShellExecuteW.
Цитата:
Надо писать L перед строковыми литералами.
Так пишут на rsdn.

Последний раз редактировалось Drugnir; 10.04.2012 в 14:50.
Drugnir вне форума Ответить с цитированием
Старый 12.04.2012, 10:19   #16
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Цитата:
Получается что, если используется UNICODE, то можно сразу писать ShellExecuteW.
да.
Цитата:
Надо писать L перед строковыми литералами
да.

Код:
ShellExecuteW(Handle, L"open", L"D:\\1.exe", NULL, NULL, SW_SHOWNORMAL));
Знающий не говорит, говорящий не знает (С) Лао Цзы

Последний раз редактировалось Krok27; 12.04.2012 в 10:28.
Krok27 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск приложения jkpro Помощь студентам 16 08.11.2009 12:31
Запуск Java Приложения Mega Общие вопросы по Java, Java SE, Kotlin 31 23.03.2009 09:30
Запуск приложения с параметрами Arhangel_bes Помощь студентам 14 12.02.2009 21:35
Запуск приложения Zloy_Doomer Общие вопросы Delphi 2 10.10.2008 13:47
Запуск приложения Артэс Общие вопросы C/C++ 2 07.06.2008 17:38