Maurice Lombardi wrote:
Andrew Gregory a écrit:
I've produced some Pascal which is called from C. The Pascal program looks like this:
program myprog;
{$gpc-main=Dummy}
myfunc (parameters.. .) : integer; asmname 'name';
{$include "myfile.pas"}
begin end.
The function myfunc is given in the file "myfile.pas".
To suit the new compiler 20030323 I changed the declaration above to
myfunc (parameters.. .) : integer; attribute (name = 'name'); external;
The compiler now objects to the re-declaration of myfunc. How can I get round this without editing myfile.pas (which is used by a number of other programs, so I don't want to alter it)?
Just add the standard keyword "forward".
Or just omit the first declaration (unless you really need to call it before its definition). Unlike in C, there's no need to "prototype" each routine.
function myfunc (parameters.. .) : integer; attribute (name = 'name'); external; forward;
Without `external'.
Frank