Hi Markus,
> I've forgotten one thing:
>
> > a *CSTRING requires eight bytes.
>
> What ist the format of *CSTRING? 4 bytes pointer + 4 bytes length?
It's some kind of "hidden" pointer to an appropriate amount of memory. It
pushes a hidden argument on the stack, which is a pointer to a temporary
buffer (located on the stack). The called function itself then copies the
return value to this buffer.
Friedrich