{$mode objfpc}{$H+} library pascalCode; type aobT = array of byte; function func1( p1 : integer ) : integer; cdecl; forward; procedure proc0; cdecl; forward; procedure proc1( p1 : integer ); cdecl; forward; procedure proc2( p1 : integer; p2 : integer ); cdecl; forward; procedure procbyref( p1 : integer; var p2 : integer ); cdecl; forward; procedure procrec( var rec : aobT; reclen : integer ); cdecl; forward; procedure testp; cdecl; forward; exports func1, proc0, proc1, proc2, procbyref, procrec, testp; // **************************************************************************** function func1( p1 : integer ) : integer; cdecl; begin writeln('@func1. p1: ', p1); result := p1 * 2; end; //func1 // ---------------------------------------------------------------------------- procedure proc0; cdecl; begin writeln('@proc0'); end; // proc0 // ---------------------------------------------------------------------------- procedure proc1( p1 : integer ); cdecl; begin writeln('@proc1. p1: ', p1); end; // p2 // ---------------------------------------------------------------------------- procedure proc2( p1 : integer; p2 : integer ); cdecl; begin writeln('@proc2. p1: ', p1, '; p2: ', p2); end; // p2 // ---------------------------------------------------------------------------- procedure procbyref( p1 : integer; var p2 : integer ); cdecl; begin p2 := p1 * 2; writeln('@procbyref. p1: ', p1, '; p2: ', p2); end; // procbyref // ---------------------------------------------------------------------------- procedure procrec( var rec : aobT; reclen : integer ); cdecl; begin end; // procrec // ---------------------------------------------------------------------------- procedure testp; cdecl; begin writeln('Hello World!'); end; // ---------------------------------------------------------------------------- //begin end.