Ответ от @DeeDee более переносим и предпочтителен только Ada, поэтому мой ответ - просто если вы ищете способ «Windows» сделать это.
Я думаю, что есть опция компоновщика, но я не смог ее найти. Более ручным способом является привязка команды system () из C и назначение ей команды «пауза» и ее размещение в конце вашей программы:
with Ada.Text_IO; use Ada.Text_IO;
with Interfaces.C.Strings;
procedure Main is
function System(Str : Interfaces.c.strings.chars_ptr) return Interfaces.C.int
with Import,
Convention => C,
External_Name => "system";
procedure Pause is
Command : Interfaces.c.Strings.chars_ptr
:= Interfaces.C.Strings.New_String("pause");
Result : Interfaces.C.int
:= System(Command);
begin
Interfaces.C.Strings.Free(Command);
end Pause;
begin
Put_Line("Hello World");
Pause;
end Main;
Я знаю, что вы уже упоминали о паузе, но просто хотели показать пример.