Il 16/01/23 20:58, Marco van de Voort via fpc-pascal ha scritto:
On 16-1-2023 20:56, Giuliano Colla via fpc-pascal wrote:
No chance. Addr is a pointer (of type Pin_addr)
but
Addr := Pin_addr(HostEnt.h_addr^)
works only if mode is Delphi. In objfpc it raises exactly the same
error.
A little bit weird, isn't it?
It depends. It assumes .h_addr is compatible with pointer. Since Free
Pascal is more portable, that might be a platform dependent assumption.
I fail to grasp the different assumptions that the compiler makes on
objfpc mode. If the typecast tells that the two types are compatible
(and they are, because they're both pointers and also of the same type)
it should write the one to the other without making any fuss! But I can
live with it! The horrible mess they've done with gethostbyname, and the
chars which are actually bytes is not so frequent, luckily! That's what
happens when you don't have the "based" construct, which makes very easy
to deal with those situations. Different structures can be based on the
same pointer, and one "type" field, common to all structures, makes you
pick up the right one.
Giuliano
Giuliano
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal