On 12 dec 2005, at 13:30, Micha Nelissen wrote:
Taken from Delphi 7 help:
Mixing Delphi strings and null-terminated strings
* You can also use Pointer(S) to cast a long string to an untyped
pointer. But if S is empty, the typecast returns nil.
* PChar(S) always returns a pointer to a memory block; if S is
empty, a pointer to #0 is returned.
Thanks, that is very ugly. That means that PChar(Pointer(MyStr)) is
not the same as PChar(MyStr) which is not very pascalish IMHO, but ok.
It happens in more in Pascal. For example, single(longint_var) is
also not the same as single(pointer(longint_var)) (let's assume a
32bit system). In the former case, the longint is convert to a
floating point number with the same value. In the latter case, you
get a floating point number with the same bit pattern as that
original longint (which may be a valid or invalid floating point
number, and whose value is almost certainly different from the
longint's value, except in case of 0).
Jonas
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel