[fpc-pascal] Can Delphi load a small function of a shared lib written in Free Pascal 2.6.2?

hinst hinstance at yandex.ru
Fri Jan 17 14:11:22 CET 2014


I suggest you use COM interfaces to use FPC objects from Delphi code. While FPC class instance memory layout differs from Delphi class instance memory layout, COM interface instances should have identical memory layouts; so they should be accessible from Delphi code

17.01.2014, 04:31, "silvioprog" <silvioprog at gmail.com>:
> 2014/1/16 Michael Van Canneyt <michael at freepascal.org>> On Thu, 16 Jan 2014, Michael Van Canneyt wrote:> On Thu, 16 Jan 2014, silvioprog wrote:
>>>> Hello,
>>>> On Windows, I'm trying to serialize an object to JSON in Delphi 7, using FPC functions linked in a shared lib.
>>>>
>>>> I'm sendind a small demo in attached. To test it is very easy:
>>>>
>>>> 1. compile the libfpserializer.lpr file;
>>>> 2. copy the generated lib to the demo/lazarus_ok folder;
>>>> 3. copy the generated lib to the demo/delphi_bug folder;
>>>>
>>>> Now, compile the Lazarus project in "lazarus_ok" folder, compile, run and see that it works fine. Now, compile the
>>>> Delphi project in "delphi_bug" folder, compile, run and see a bizzare bug that kills the app.
>>>>
>>>> So, in Delphi 7, its possible to consume a DLL written in Free Pascal?
>>>
>>> You cannot mix Delphi objects with FPC objects.
>>>
>>> They have a different memory layout, the RTTI is different etc.
>>> So what you try to do is not possible.
>>
>> I have somewhere a version of TJSONStreamer which uses SuperObject to write the JSON.
>> If you want I can try to dig it up somewhere.
>>
>> Michael.
>
> Very good friend. I want, and it will be very useful to me. Thank you! :)
>
> --
> Silvio Clécio
> My public projects - github.com/silvioprog
>
> ,
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal



More information about the fpc-pascal mailing list