Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   ЧАВО - Частые Вопросы и Ответы    >>    runext
   
 
 EXE. Как запустить внешнюю программу   Sly Golovanov 27.12.1997

Методика запуска внешних программ с помощью EXEC(...), в том числе, когда внешняя программа слишком велика...


 
 

Pascal FAQ created by SLY Golovanov, 2:5020/278.13 (slightly corrected by Valery Votintsev 2:5021/22) ============================================================================== Q:> А как из моей программы запустить другую? A: С помощью процедуры Exec: SwapVectors; Exec(Путь&ИмяВашейПрограммы, Доп_Параметры); SwapVectors; Q:> А почему внешняя программа из моей не запускается? A: А память кто будет внешней проге отдавать? По умолчанию все 640Kb отдаются твоей программе. Исправить это можно либо через Options/Memory Sizes../ High heap limit, либо директивой компилятора: {$M 4096,0,10000} Здесь первая цифра - память под стек (в стеке размещаются локальные переменные каждой вызываемой процедуры/функции), вторая - нижняя граница памяти, третья - верхняя. В данном примере твоей программе отдается 10000 байт, а все остальное - внешней программе. Q:> А если мне самому память нужна? A: Используй библиотеку для своппинга (выгрузки из памяти) в XMS/EMS/Disk - перед запуском внешней программы твоя программа вместе со всеми данными переписывается в XMS/EMS или на винт, а после завершения внешней - восстанавливается. Можно воспользоваться, например, юнитом SPAWNO от Ральфа Брауна, или модулем OpExec из ObjectProf by TurboPower. --- * Origin: (2:5020/794.13)