Explicitly load a library

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Explicitly load a library

adamnt42@gmail.com
Is there any way to explicitly load a library similar to loading a component via Component.Load(name as String)?

I want to load a library used by another project and determine the exposed classes in the library. It's for a code generator.

So, my "target" project, say "AuctionCalendar" uses the "horse4.gambas" library. My code generator "GenCode2" interrogates the .project file for AuctionCalendar and can load any components it uses and determine the exposed classes therein. But I can't find a way to do the same for the horse4 library.  Note, I can't use the source project for horse4 because it may not match the installed version, so I need to get the classes out of the executable archive.

--
B Bruen <[hidden email] (sort of)>

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user
Reply | Threaded
Open this post in threaded view
|

Re: Explicitly load a library

Benoît Minisini
Le 29/05/2017 à 05:30, [hidden email] a écrit :

> Is there any way to explicitly load a library similar to loading a
> component via Component.Load(name as String)?
>
> I want to load a library used by another project and determine the
> exposed classes in the library. It's for a code generator.
>
> So, my "target" project, say "AuctionCalendar" uses the
> "horse4.gambas" library. My code generator "GenCode2" interrogates
> the .project file for AuctionCalendar and can load any components it
> uses and determine the exposed classes therein. But I can't find a
> way to do the same for the horse4 library.  Note, I can't use the
> source project for horse4 because it may not match the installed
> version, so I need to get the classes out of the executable archive.
>

Component.Load() can take an absolute path to a gambas executable to
load it as a library.

To just get information about a library file, look at the CLibraryInfo
class in the IDE source code.

For example, running 'gba3 -x <library path> .list' will return the
contents of the '.list' file included in the library executable, that
you can parse to get all the exported classes.

Regards,

--
Benoît Minisini

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Gambas-user mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gambas-user