У меня есть следующая привязка:
function atexit(proc : access Procedure) return Integer with
Import, Convention => C;
А также процедура:
procedure Exiting is
begin
Put_Line("Exiting");
end Exiting;
Когда я пытаюсь назвать это как:
I : Integer := atexit(Exiting'Access);
не получается с subprogram "Exited" has wrong convention
однако, предоставляя мой собственный (несовместимый) atexit
, который принимает параметр, и изменение Exiting
для использования этого же параметра позволяет просто пройти процедуру.
Похоже, проблема заключается в передаче процедуры без параметров в качестве типа доступа.
Я пытался указать именованный тип доступа, например
type Procedure_Access is access Procedure;
Но результат точно такой же.
Как мне пройти процедуру без параметров?