функции С и C++, библиотек C++Builder, API Windows________________879

Остается еще один недостаток рассмотренного примера — на время выполнения
разархивации получаются неприятные изменения экрана, связанные с выходом в
DOS. Но этот недостаток может быть снят только функциями, рассмотренными в
разделе 14.14.3.

В главе 6 в разделе 6.1.2 приведен развернутый пример использования функ-
ции spawnip для организации оверлейной загрузки вызываемых программ с по-
следующим возвратом в головное приложение. Посмотрите его.

Функция system выполняет команду command и возвращает управление в вы-
звавшее приложение. Команда command может быть командой операционной сис-
темы, командой выполнения программы DOS или пакетного (batch) файла. Про-
грамма должна быть в текущем каталоге или в одном из каталогов, перечислен-
ных в переменной окружения PATH. Команда выполняется командным процессо-
ром DOS, что вызывает в Windows в ряде случаев неприятное изменение экрана на
время выполнения команды. Функция system возвращает 0 при успешном начале
работы командного процессора и -1 в случае неудачи. Приведем примеры:

// команда DOS dir с занесением результатов
// в текстовый файл dir.txt
system("dir » dir.txt");

// команда DOS mkdir, создающая каталог c:\\ttt
system("mkdir c:\\ttt");

// выполнение Norton Commander
system("nc");

14.14.3 Функции API Windows для запуска из приложения
внешних программ

Методика запуска из приложения внешних программ изложена в главе 6 в
разделе 6.1. Ниже даются справочные сведения по упоминаемым там процедурам
и функциям API Windows.

14.14.3.1 Сообщения об ошибках при запуске внешних программ

Если описанные далее функции возвращают значение меньшее или равное 32,
это указывает на ошибку. Значения ошибок означают следующее (в Windows 95,
98 и NT для некоторых из этих ошибок имеются именованные константы):

Значение	Именованная константа	Пояснение
0		Системе не хватает памяти, выполняемый файл испорчен или произошло ошибочное перераспределение памяти.
2	ERRORFILENOTFOUND	Файл не найден.
3	ERRORPATHNOTFOUND	Путь не найден.
5	SEERRACCESSDENIED	Была попытка динамически связаться с задачей, была ошибка многопроцессорного выполнения или ошибка защиты сети.
6		Библиотека требует отдельных сегментов данных для каждой задачи.