[Lazarus] Creating a library

2022-11-15 Thread 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.

Thank you.

Aruna Hewapathirane
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Creating a library

2022-11-15 Thread Sven Barth via lazarus

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
--
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Creating a library

2022-11-15 Thread Aruna Hewapathirane via lazarus
On Tue, Nov 15, 2022 at 2:28 PM Sven Barth via lazarus <
lazarus@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!





> ___
> lazarus mailing list
> lazarus@lists.lazarus-ide.org
> https://lists.lazarus-ide.org/listinfo/lazarus
>
-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus


Re: [Lazarus] Creating a library

2022-11-15 Thread Sven Barth via lazarus

Am 15.11.2022 um 20:31 schrieb Aruna Hewapathirane:


On Tue, Nov 15, 2022 at 2:28 PM Sven Barth via lazarus 
 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-- 
___
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus