[fpc-pascal] real to integer

Пётр Косаревский ppkk at mail.ru
Tue May 30 12:10:33 CEST 2006

> The compiler already gives unit information in case you have  
> conflicting types for making it easier to debug such problems. I  
> don't see why it shouldn't do the same for used function definitions.
> Jonas

program A; // "Bad" program
uses sysutils,windows;
const B:shortstring='1.txt';
begin DeleteFile(B); end.

Last compiler messages ("-va"): (all dependencies, path searching etc are before)
Searching file 1.pp... found
(A)        Load from A (implementation) unit WINDOWS
1.pp(3,1) (A)        Parsing implementation of 1.pp
1.pp(4,19) Error: Incompatible type for arg no. 1: Got "ShortString", expected "PChar"
Hint: Found declaration: DeleteFile(PChar):LongBool

program C;
uses windows,sysutils;
const B:shortstring='1.txt';
begin DeleteFile(B); end.

Last compiler messages:
Searching file 2.pp... found
2.pp(3,1) (C)        Parsing implementation of 2.pp
2.pp(2,13) Hint: Unit "windows" not used in C

I got nice hints: "Load from A (implementation) unit WINDOWS" and "Hint: Unit "windows" not used in C".

While the second hint helps me to understand, that if I wanted to run deletefile() from windows, I failed, I don't understand how to read first bunch of messages (there are lotsa "Load from A ..." messages).

Of course, if I use any function from windows unit, I don't get "Hint: ... not used ...".

This is fpc-pascal maillist, I don't insist, that I can read good. Where from had I to get my hint?

More information about the fpc-pascal mailing list