[Lazarus] Creating a library

Sven Barth pascaldragon at googlemail.com
Tue Nov 15 21:50:12 CET 2022


Am 15.11.2022 um 20:31 schrieb Aruna Hewapathirane:
>
> On Tue, Nov 15, 2022 at 2:28 PM Sven Barth via lazarus 
> <lazarus at lists.lazarus-ide.org> wrote:
>
>     Am 15.11.2022 um 20:11 schrieb Aruna Hewapathirane via lazarus:
>     > Hello Everyone,
>     >
>     > I was wondering if it is possible for me to create a library
>     with my
>     > own set of code snippets I use on a regular basis . Is there any
>     > example code I can possibly look at how this is done?
>     >
>     > Or a small single function example if someone is willing would help
>     > immensely.
>
>     Do you really mean a library in the sense of a DLL or SO which
>     requires
>     you to pay a bit more attention to how you code it due to the
>     crossing
>     of the module boundaries or do you mean a Lazarus package which is a
>     collection of units that Lazarus will compile for you if necessary
>     and
>     that you can use freely?
>
>     Regards,
>     Sven
>
>
> Hi Sven, my apologies I should have been more specific and yes it is 
> the linux SO
> I am specifically interested in but certainly also interested in how 
> to create the DLL
> for Windows.Thanks!
>
Then please take a look here: 
https://www.freepascal.org/docs-html/prog/progch12.html#x262-27800012

But also pay attention to these articles on the Wiki which raise a few 
issues you need to be aware of:
- https://wiki.freepascal.org/Lazarus/FPC_Libraries
- https://wiki.freepascal.org/shared_library

Important points of these to keep in mind:
- don't allocate memory in the module and release in the program (or 
vice versa) - unless you use a common memory manager between them like 
ShareMem or cmem - this also includes strings and arrays
- don't pass classes between module and program
- don't propagate exceptions from the module to the program (or vice versa)

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20221115/9040de8f/attachment.htm>


More information about the lazarus mailing list