Den 12-01-2011 06:56, Paul Ishenin skrev:
12.01.2011 12:29, Jeppe Johansen wrote:
A short example:
procedure NoHandler;
begin
end;

procedure TestProc; weakexternal name 'TestProc' set 'NoHandler';
...
begin
TestProc; // This will call NoHandler
end.

If we modify the example:
procedure NoHandler;
begin
end;

procedure TestProcHandler; [public, alias: 'TestProc'];
begin
end;

procedure TestProc; weakexternal name 'TestProc' set 'NoHandler';
...
begin
TestProc; // This will call TestProcHandler
end.

As I understand NoHandler will be called if we call a TestProc routine but 'TestProc' symbol is is not found?

If so then:
a) NoHandler must have the same arguments and calling convention as TestProc?
With this solution, no. This uses only symbol names
b) What happen if NoHandler is not found?
Then TestProc cannot be resolved to any symbol, and will generate a weak undefined reference. Eg. it won't complain about an undefined reference
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to