[fpc-pascal] Question about functions returning a string
Ewald
ewald at yellowcouch.org
Mon Dec 1 16:10:20 CET 2014
On 12/01/2014 04:34 AM, leledumbo wrote:
>> So in general, one should not use managed types in the prototype of an
>> exported (public) function?
>
> Bingo. At least not until we have properly sharable RTL.
The problem lies not with a sharable RTL. As mentioned, I do not want to
/use/ these managed types in another language. I just want to pass them
along :-)
>> my thought was that it would be
>> possible to pass along these managed types (especially string, as it is
>> a pointer internally) to another pascal function (a callback in my case).
>
> You can still pass pointer to its first element as a PChar, treating it
> read-only in the caller for safety reason (though it's possible to make it
> writable as well, but the safety burden is propagated to the caller).
Actually I was trying to avoid PChar's ;-)
In the meanwhile, I've fixed my issue by not returning a string as a
result, but as an out parameter:
Function Bla: String;
... becomes ...
Procedure Bla(out Result: String);
This seems to work. How portable it is, I do not know, I guess time will
be the judge and jury on that.
Anyway, thanks to you all!
--
Ewald
More information about the fpc-pascal
mailing list