[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is it possible/acceptable to create a component in Gambas that depends on a shared library?
[Thread Prev] | [Thread Next]
- Subject: Re: Is it possible/acceptable to create a component in Gambas that depends on a shared library?
- From: Lee <t.lee.davidson@xxxxxxxxx>
- Date: Wed, 11 Feb 2026 16:43:51 -0500
- To: user@xxxxxxxxxxxxxxxxxxxxxx
On 2/11/26 12:00 PM, gbWilly wrote:
On Tuesday, February 10th, 2026 at 22:49, Lee <t.lee.davidson@xxxxxxxxx> wrote:On 2/10/26 3:06 PM, gbWilly wrote:A lot of the questions you pose here Claus have my attention as well. I'm very curious to read answers to these questions as I do want to experiment with interfacing with some C libraries myself.Hi Willy, Are you interested in interfacing with a shared library directly from Gambas using the "LIBRARY" and "EXTERN" declarations? Or, are you interested in creating one or more components that interface with a shared library using the Gambas Programming Interface (https://gambaswiki.org/wiki/dev/api)?Just getting an application interface with a library would be where I would like to start. I know nothing on the matter, but I am curious. gbWilly
Understood. You're probably already aware of the "how to" at https://gambaswiki.org/wiki/howto/extern, but I mention it just in case. Perhaps that is a bit too complex for your preference at the moment. I admit that I haven't fully read it.
I have attached a very simple project that uses six functions from "Libc:6". I got the 'perror' function from [1] and the rest from [2].
This example may be too simple as, for example, one thing it does not demonstrate is how to handle a callback, ie. using an external function that expects a callback function as one of its arguments. Gambas makes this quite simple.
[1] https://sourceware.org/glibc/manual/latest/html_node/Error-Messages.html [2] https://sourceware.org/glibc/manual/latest/html_node/Reading-Persona.html -- Lee --- Gambas User List Netiquette [https://gambaswiki.org/wiki/doc/netiquette] ---- --- Gambas User List Archive [https://lists.gambas-basic.org/archive/user] ----
<salt FCKGM-0001-C6E4-AEDD-AA43> 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 </salt>