Отправляет email-рассылки с помощью сервиса Sendsay

[TC] что и как подключить в проекте на C++ для работы ShellExecute()

Здравствуйте, уважаемые!

Изучаю C++ и как обычно забегаю вперед, пытаясь делать вещи, которые еще не понимаю,
но хочется очень :-)
Одним словом, в программа на C++ должна запускать bat-файл. При компиляции никаких
ошибок нет, но и компиляции не происходит. Вот как!

ShellExecute(NULL,'open','D:\start.bat',NULL,NULL,0);

Почитал на форумах и разные статьи - пишут, что нужна библиотека shell32.lib,
а вот дальше - десятки вариантов и интерпретаций. Какую же библиотеку или заголовочный
файл подключать?
Самый популярный вариант:

#pragma comment (lib, "shell32.lib")

Попробовал два-три варианта и плюнул.

p.s. Чувствую себя идиотом, который пробует на зуб все что попадется под руку
:-(

Грызунов Александр. Самара.

Ответить   Sat, 26 May 2012 14:47:49 +0300 (#2466044)

 

Ответы:

Приветствую всех.

Так не бывает. Что-то в приведенной цитате не соответствует действительности.
Есть ненулевая вероятность, что скринридер не озвучивает необходимую информацию.

Почему бы сразу не почитать официальную документацию?

http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx

Header
Shellapi.h

Library
Shell32.lib

Кроме того, надо инициализировать поддержку COM (подробности см. по вышеуказанной
ссылке).

Директива pragma задает зависимые от компилятора команды, то есть данная строка
будет проигнорирована компилятором, который не поддерживает команду comment(lib,...).
Кроме того, либо в свойствах проекта, либо в makefile должен быть указан путь
к библиотечным файлам. Да и саму библиотеку можно указать в свойствах проекта,
а не использовать #pragma.

Не совсем понятно, зачем здесь использовать именно ShellExecute()?
Если в bat-файле всего лишь одна команда, то можно напрямую запустить внешнюю
программу посредством функции CreateProcess().
Можно также при помощи CreateProcess() запустить cmde.exe с данным bat-файлом
в командной строке.
Ну или воспользоваться семейством exec-функций из стандартной библиотеки языка
C.

Успехов. Анатолий.

Ответить   "i_chay" Sun, 27 May 2012 12:14:26 +0400 (#2466524)