Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Компиляция в Turbo Pascal 7.0


Автор: mr.Anderson 21.9.2006, 21:17
Подскажите, каким образом происходит компиляция в Turbo Pascal 7.0 ? Т.е. ведь сам TP состоит из нескольких консольных приложений, мож, для компиляции надо какое-то из них запустить?
Просто я хочу сделать Windows-программку (вместо DOS-интерфейса TP7), которая бы тож могла компилировать набранный в ней код с использованием файлов TP. А такое возможно?

Автор: Romikgy 21.9.2006, 21:20
А разве 
Цитата(sim7 @  21.9.2006,  20:17 Найти цитируемый пост)
Turbo Pascal 7.0 

умеет делать вин32 приложения?

Автор: Snowy 21.9.2006, 21:41
в комплекте есть компилятор коммандной строки.
Находится в каталоге BIN, называется tpc.exe
Для компиляции нужно передать файл в коммандной строке.
Например:
tpc.exe MyProg.pas

Автор: mr.Anderson 22.9.2006, 14:15
Romikgy, ну, вообще-то он умеет создавать екзешники, работающие в консольном режиме но под винду.

Snowy, благодарю! smile 

Автор: Mr.Floppy 23.9.2006, 14:00
А не лучше ли использовать dcc32, он можеть компилировать исходники на delphi? Или обязательно нужен Turbo?

DCC32 лежит в $(DELPHI)\Bin
Использовать:
dcc32 MyProg.dpr

Автор: mr.Anderson 23.9.2006, 14:42
Нет, в данном случае мне нужен именно турбо паскал.
Но за информацию спасибо, пригодится! smile

Автор: mr.Anderson 24.9.2006, 18:58
Секунду.
Создал файл с кодом паскаля, через WinExec скомпилил его, заюзав TPC.EXE.
Но это приложение только запустило мою программу! А екзешник не создало! А как утилитами из состава Турбо Паскаля СОЗДАТЬ ЕКЗЕШНИК?

Автор: Snowy 24.9.2006, 19:17
Запустить tpc с параметром - имя pas файла.
Он создаёт exe.
tpc только создаёт exe. Он его не запускает.
Если что-то работает не так - показывай код.

Автор: mr.Anderson 24.9.2006, 20:03
Вот такой код исполняется:
Код

WinExec( PChar( '"compiler\bin\tpc" ' + FilesLB.Items.Strings[ rich.Tag ] ), SW_SHOW );

Но файлик не создается. А вообще, где должен находиться искомый файл?! В какой из папок? В BIN ? или где?

Кстати, в FilesLB.Items.Strings[ rich.Tag ] содержится полный путь к файлу с кодом.

Автор: volvo877 24.9.2006, 20:38
sim7, я только что попробовал:

Код
const
  // Имя в формате 8.3, а НЕ длинные имена файлов, DOS программа длинные имена не понимает...
  codefile = 'F:\VladyD~1\Programs\pas\___STR.PAS'; 
...
  // А вот тут, в указании пути к TPC - можно длинные имена
  winexec(pchar('"F:\Vlady Documents\Programs\pas\TP70\BIN\tpc.exe" ' + codefile), SW_SHOW);
...

EXE файл - будет в текущей папке твоего приложения...

Автор: Alexeis 24.9.2006, 21:36
sim7, Турбо паскаль в полной версии? С линкером?

Автор: mr.Anderson 28.9.2006, 13:41
Надо было вот так:
Код

WinExec( PChar( 'compiler\tp7\bin\tpc.exe ' + ExtractShortPathName( FilesLB.Items.Strings[ rich.Tag ] ) ), SW_HIDE );

Спасибо, Snowy!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)